我在ASP.NET MVC3中使用Ajax.BeginForm幫助程序提交表單,該表單使用表單中的新值替換自己在服務器上設置。但是,當我使用像Html.TextBoxFor這樣的幫助器時,我得到了提交的值,而不是我在服務器上插入到模型中的值。ASP.NET MVC 3 Ajax.BeginForm和Html.TextBoxFor不反映在服務器上完成的更改
例如;我將SomeValue設置爲4,並將其顯示在文本框中。我將值更改爲8,點擊提交,並希望在文本框中將值更改回4,但出於某種原因,它保持爲8.但是,如果我輸出SomeValue而不使用Html幫助器,它會顯示4.任何人都有一些線索到底是怎麼回事?
我的控制器:
public ActionResult Index(HomeModel model)
{
model.SomeValue = 4;
if (Request.IsAjaxRequest())
return PartialView(model);
return View(model);
}
public class HomeModel
{
public int? SomeValue { get; set; }
}
我的視圖(請沒有,我在我的佈局頁面中的所有所需的JavaScript):
<div id="ajaxtest">
@using(Ajax.BeginForm(new AjaxOptions{ InsertionMode = InsertionMode.Replace,
UpdateTargetId = "ajaxtest", HttpMethod = "Post" })) {
@Html.TextBoxFor(model => model.SomeValue)
<input type="submit" value="Update" />
}
</div>