【发布时间】:2015-04-27 08:46:48
【问题描述】:
ajax actionlink 如下所示:
@Ajax.ActionLink("Create account", "RegisterNewUser", "RegisteredUsers", new AjaxOptions { UpdateTargetId = "updaterDiv", HttpMethod = "POST" }, new { @class = "actionButtons" }
当 RegisterNewUser 操作看起来像这样时:
public ActionResult RegisterNewUser(string uName, string email, string password)
{
ViewBag.Message = "Register";
string msg = "";
if (!users.RegisterUser(uName, email, password))
{
msg = "The provided email already exists";
}
ViewBag.DeniedMsg = msg;
return PartialView("_Register");
}
ajax actionlink 工作正常。但是当我将[HttpPost] 添加到操作方法(顺便说一句,由ajax actionlink 调用)时,链接停止响应。当我点击它时没有任何反应。我究竟做错了什么?包含链接的表单如下所示:
@using (Html.BeginForm(new { @class = "registerForm" }))
{
@Html.LabelFor(model => model.nickName)
@Html.TextBoxFor(model => model.nickName, new { @class = "RegisterControls" })
<br /><br />
@Html.LabelFor(model => model.email)
@Html.TextBoxFor(model => model.email, new { @class = "RegisterControls" })
@Html.ValidationMessageFor(model => model.email)
<br /><br />
@Html.LabelFor(model => model.password)
@Html.PasswordFor(model => model.password, new { @class = "RegisterControls", id = "firstPassword" })
<br /><br />
@Html.LabelFor(model => model.confirmPassword)
@Html.PasswordFor(model => model.password, new { @class = "RegisterControls" })
@Html.ValidationMessageFor(model => model.confirmPassword)
<br /><br /><br />
<hr style="color: #D5E0EE; border: solid; border-style: double;" />
@Ajax.ActionLink("Create account", "RegisterNewUser", "RegisteredUsers", new AjaxOptions { UpdateTargetId = "updaterDiv", HttpMethod = "POST" }, new { @class = "actionButtons" })
<br /><br />
<p style="color: red">@ViewBag.DeniedMsg</p>
}
我可能做错了什么?
【问题讨论】:
-
为什么在表单中有
@Ajax.ActionLink()?RegisterNewUser()是 GET 还是 POST 方法?你想做什么?
标签: asp.net ajax asp.net-mvc razor asp.net-mvc-5