【发布时间】:2013-11-05 22:29:27
【问题描述】:
在部分视图中,有一个使用 Html.Helper 类(TextBoxFor、DropDownListFor 等)的表单(@addName)。
@model Models.ADP
using (@Html.BeginForm(new { id= @addName}))
{
@Html.TextBoxFor(model => model.EndValue, new { id = @newName, size = "5", style = "margin-right: 10px" })
@Html.HiddenFor(model => model.ModuleTypeId, new { @Value = @ViewBag.ModuleId }
@Html.DropDownListFor(model => model.DPId, @dpList, "Choose an Option...", new { @class = "select" })
}
我拦截提交是为了异步发布和检索新数据,divId是整个Partial View的div。
$('#@saveName').click( function (event) {
event.preventDefault();
$.ajax({
url: '@Url.Action("SaveADP", "Dispense")',
type: 'POST',
data: $('#@addName').serialize(),
success: function (data) {
$('#@divId').html(data);
}
})
})
正在调用 SaveADP 操作,但唯一具有设置值的字段是 EndValue,其他字段(ModuleTypeId 和 DPId)具有默认值而不是它们的表单值。我在这里做错了什么?
【问题讨论】:
-
你的动作怎么样?
-
public ActionResult SaveADP(ADP newDP)是签名,ADP 有 StartValue、EndValue、ModifiedDate、DPId、ModuleTypeId 和 Duration 字段。我还没有超出这个范围,因为 newDP 没有用正确的值构造。
标签: jquery ajax asp.net-mvc razor html-helper