【发布时间】:2013-10-13 23:09:28
【问题描述】:
我花了很多时间来寻找解决方法或解决我遇到的问题的方法。我有一个如下原型的 AJAX 表单:
@using (Ajax.BeginForm("MyAction", "Account", new AjaxOptions() {
HttpMethod = "POST",
UpdateTargetId = Model.MyID.ToString(), OnSuccess = "onSuccess"
}))
{
@Html.AntiForgeryToken()
<fieldset>
<legend></legend>
@Html.HiddenFor(m => m.MyID, new { @id = Model.MyID.ToString() })
}
如您所见,HiddenFor 值是根据来自 POST 操作中的值更新的,例如下面来自 POST 操作的代码 sn-p:
return Content(model.MyID.ToString());
好消息是 AJAX 调用更新了 HiddenFor 值,但在下一个 POST 操作中,MyID 的值为零,尽管我知道它必须是非零值!
我读了很多建议Model.Clear()或Model.Remove("MyID")等的帖子,但他们甚至没有帮助!
我做错了什么,对此有什么坚定的解决方案?提前感谢您的帮助。
【问题讨论】:
-
你能再显示一些代码吗
-
请发布控制器操作代码...
-
您没有提供任何代码表明您正在更新
model.MyID。您正在返回model.CompetencyId,请尝试在您的 post 方法中更新Model.MyID,因为隐藏字段的值是model.MyID,并且使用 ajax 结果更改值不会更新模型中的任何内容
标签: c# asp.net-mvc asp.net-mvc-4 asp.net-ajax