Tôi đã không thành công trong việc làm việc này!ASP.net MVC3 - Xem dao cạo và xem một phần với bài đăng của Ajax
Trong một cái nhìn ...
@model Project.Models.Account.ForgotPasswordModel
@{
ViewBag.Title = "Forgot Password";
}
<h2>ForgotPassword</h2>
<span id='@ViewBag.ReplaceID'>
@Html.Partial("_ForgotPasswordUserNameAjax", ViewData.Model)
</span>
tôi khiến PartialView này ...
@model Project.Models.Account.ForgotPasswordModel
@{
this.Layout = null;
}
@using (Ajax.BeginForm("ForgotPassword", new AjaxOptions() { UpdateTargetId = ViewBag.ReplaceID, InsertionMode = InsertionMode.InsertAfter }))
{
@Html.ValidationSummary(true, "Forgot Password was unsuccessful. Please correct the errors and try again.")
<div id="login" class="box">
<fieldset>
<h2>Account Information</h2>
<div class="inside">
<div class="editor-label">
@Html.LabelFor(m => m.Username)
</div>
<div class="editor-field">
@Html.TextBoxFor(m => m.Username)
<br />
@Html.ValidationMessageFor(m => m.Username)
<br />
</div>
<p>
<input type="submit" value='Submit' />
</p>
</div>
</fieldset>
</div>
}
Và controller action này ...
[HttpPost]
public PartialViewResult ForgotPassword(ForgotPasswordModel model)
{
if (String.IsNullOrEmpty(model.Username))
{
ModelState.AddModelError("Username", ForgotPasswordStrings.USER_NAME_REQUIRED);
}
else
{
bool isGood = false;
model.Question = this._security.ValidateUserNameGetSecurityQuestion(model.Username, out isGood);
if (!isGood)
{
ModelState.AddModelError("Username", ForgotPasswordStrings.USER_NAME_INVALID);
}
}
PartialViewResult retVal = null;
if (ModelState.IsValid)
{
retVal = PartialView("ForgotPasswordAnswerAjax", model);
}
else
{
retVal = PartialView("_ForgotPasswordUserNameAjax", model);
}
return retVal;
}
Tuy nhiên, mỗi lần duy nhất , chế độ xem chỉ trả về PartialView, không có trong bố cục. (Vì vậy, chỉ một phần của tôi là trên màn hình. Không có gì khác.) Tôi đã thử af ew những điều tôi đã tìm thấy trực tuyến ... http://www.compiledthoughts.com/2011/01/aspnet-mvc-razor-partial-views-with.html http://stackoverflow.com/questions/4655365/mvc3-submit-ajax-form
Nhưng không có gì đã khắc phục vấn đề này. Tôi đã thay đổi InsertionMode thành tất cả các giá trị không có thay đổi. Tôi đã thay đổi @ Html.Partial thành một khối mã như @ { Html.RenderPartial ("_ ForgotPasswordUserNameAjax", ViewData.Model); }.
Điều đó không hoạt động ...
Tôi đang hết ý tưởng (và kiên nhẫn)!
Vui lòng trợ giúp!
Vâng, tôi đang chuyển đổi dự án này từ một ứng dụng MVC2 để MVC3 trong Ngoài việc thay đổi tầm nhìn bao quát để Razor. Chúng hoạt động hoàn hảo tốt trước khi chuyển sang MVC3. Tôi đã mong đợi không phải thay đổi mã điều khiển (ngoại trừ việc đặt tên mới của các khung nhìn với dấu gạch dưới). :( – DavidAndroidDev