我一直非常失败,让这个工作!
在一个视图…
@model Project.Models.Account.ForgotPasswordModel @{ ViewBag.Title = "Forgot Password"; } <h2>ForgotPassword</h2> <span id='@ViewBag.ReplaceID'> @Html.Partial("_ForgotPasswordUserNameAjax",ViewData.Model) </span>
我渲染这个partialView …
@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> }
而这个控制器的动作…
[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; }
然而,每一次,视图只返回PartialView,而不是包含在布局中(所以只是我的PartialView在屏幕上,没有其他的).我尝试了一些我在网上找到的东西…
http://www.compiledthoughts.com/2011/01/aspnet-mvc-razor-partial-views-with.html
https://stackoverflow.com/questions/4655365/mvc3-submit-ajax-form
但没有什么可以解决这个问题.我已经将InsertionMode更改为所有值,而不改变.我已将@ Html.Partial更改为一个代码块
@ {
Html.RenderPartial(“_ ForgotPasswordUserNameAjax”,ViewData.Model);
}.
这不行
我的想法(和耐心)用完了!
请帮忙!
解决方法
编辑
PEBKAC.
PEBKAC.
我忘了升级项目时,我添加了新的jquery.unobtrusive-ajax.js文件,但从未将它们包含在_Layout.cshtml页面中.补充该库修复问题.对不起大家!
原文
我开始认为这是一个错误.再次将未转换的项目(MVC2)转换为MVC3.我以aspx / ascx格式离开所有原始页面并运行该项目.我试过页面.同样的问题仍然存在.回到MVC2,它工作正常.再次尝试MVC3,再次发生问题.
我使用与这个非常相似的页面来转换项目
http://mattsieker.com/index.php/2010/11/21/converting-asp-net-mvc2-project-to-mvc3/