gpt4 book ai didi

asp.net-mvc - ASP.net MVC3 - 带有 Ajax 回发的 Razor View 和部分 View

转载 作者:行者123 更新时间:2023-12-03 22:35:10 25 4
gpt4 key购买 nike

我一直很不成功地让它工作!

在一个 View ...

@model Project.Models.Account.ForgotPasswordModel

@{
ViewBag.Title = "Forgot Password";
}

<h2>ForgotPassword</h2>

<span id='@ViewBag.ReplaceID'>
@Html.Partial("_ForgotPasswordUserNameAjax", ViewData.Model)
</span>

我渲染这个部分 View ...
@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>
}

而这个 Controller Action ......
[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;

}

然而,每一次, View 只返回 PartialView,而不是包含在布局中。(所以只有我的 PartialView 在屏幕上。没有别的。)我尝试了一些我在网上找到的东西......
http://www.compiledthoughts.com/2011/01/aspnet-mvc-razor-partial-views-with.html
http://stackoverflow.com/questions/4655365/mvc3-submit-ajax-form

但是没有任何东西可以解决这个问题。我已将 InsertionMode 更改为所有值,没有任何变化。我已将 @Html.Partial 更改为类似的代码块
@{
Html.RenderPartial("_ForgotPasswordUserNameAjax", ViewData.Model);
}。

那行不通...

我的想法(和耐心)快用完了!

请帮忙!

最佳答案

编辑
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/

关于asp.net-mvc - ASP.net MVC3 - 带有 Ajax 回发的 Razor View 和部分 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4888521/

25 4 0