Asp.net mvc ASP.net MVC3-带有Ajax回发的Razor视图和PartialView
我一直很不成功,让这个工作 从某种角度来看Asp.net mvc ASP.net MVC3-带有Ajax回发的Razor视图和PartialView,asp.net-mvc,asp.net-mvc-3,razor,Asp.net Mvc,Asp.net Mvc 3,Razor,我一直很不成功,让这个工作 从某种角度来看 @model Project.Models.Account.ForgotPasswordModel @{ ViewBag.Title = "Forgot Password"; } <h2>ForgotPassword</h2> <span id='@ViewBag.ReplaceID'> @Html.Partial("_ForgotPasswordUserNameAjax", ViewData.
@model Project.Models.Account.ForgotPasswordModel
@{
ViewBag.Title = "Forgot Password";
}
<h2>ForgotPassword</h2>
<span id='@ViewBag.ReplaceID'>
@Html.Partial("_ForgotPasswordUserNameAjax", ViewData.Model)
</span>
然而,每一次,视图都只返回PartialView,而不包含在布局中。(所以只有我的PartialView在屏幕上。没有其他内容。)我尝试了一些我在网上找到的东西。。。
http://stackoverflow.com/questions/4655365/mvc3-submit-ajax-form
但没有任何东西能解决这个问题。我已经将InsertionMode更改为所有值,没有任何更改。我已将@Html.Partial更改为如下代码块
@{
RenderPartial(“\u ForgotPasswordUserNameAjax”,ViewData.Model);
}
那不行
我的想法(和耐心)都快用完了
请帮忙 我认为“主”视图也被称为ForgotPassword,就像部分视图一样
由于控制器仅返回PartialViewResult,因此不使用布局
为父视图和ajax调用创建不同的操作。编辑
佩布卡克
我忘了升级项目时,我添加了新的jquery.unobtrusive-ajax.js文件,但从未将它们包含在_Layout.cshtml页面上。在中添加该库修复了该问题。对不起,伙计们
原职
我开始认为这是一个错误。再次获取未转换的项目(MVC2)并将其转换为MVC3。我将所有原始页面保留为aspx/ascx格式,然后运行该项目。我试过了。同样的问题仍然存在。回到MVC2,它工作正常。再次尝试MVC3,问题再次出现
我使用与此非常类似的页面转换了项目
由于您只返回部分视图,因此只需处理部分视图。由于Razor视图的处理方式,MVC3更严格地遵守了此功能 只需将控制器操作更改为以下内容:
[HttpPost]
public ActionResult 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 = View("ForgotPasswordAnswerAjax", model);
}
else
{
retVal = PartialView("_ForgotPasswordUserNameAjax", model);
}
return retVal;
}
嗯,除了将视图更改为Razor之外,我正在将这个项目从MVC2应用程序转换为MVC3。在切换到MVC3之前,这些都工作得非常好。我原以为不必更改控制器代码(除了带下划线的视图的新命名):(虽然这让我获得了更多的格式设置,但我完全忽略了部分视图的父视图中的所有内容。诚然,这并不多,但如果有其他包含更多内容的页面,我不得不将其放在部分视图中??那么部分视图有什么用呢?
[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;
}
[HttpPost]
public ActionResult 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 = View("ForgotPasswordAnswerAjax", model);
}
else
{
retVal = PartialView("_ForgotPasswordUserNameAjax", model);
}
return retVal;
}