在 jQuery 向 MVC 操作发出请求后,我遇到了接收数据的问题。我有标准场景。我必须从用户那里收集一些信息并将其发送到操作以将此数据添加到数据源并将新条目的 id 返回到 UI 以供进一步使用。
jQuery
$('#somediv').on('click', '.Save', function () {
var data = $(this).closest('form').serialize();
$.post('/home/add', data, function (data) {
$('#div-container').html(data);
});
});
MVC 动作
[HttpPost]
public ActionResult Add(Data data)
{
Data addedData = logic.Add(data);
ViewData.Model = addedData;
return PartialView("PatrialView");
}
局部视图
@model MyClass.Data
@using (Html.BeginForm())
{
<div id="div-container">
@Html.HiddenFor(model => Model.Id)
@Html.TextBoxFor(model => Model.Name)
</div>
<input type="button" class="btn Save" value="Save" />
</div>
</li>
}
家庭控制器也有一个过滤器来禁用缓存。
[OutputCache(NoStore = true, Duration = 0, VaryByParam = "*")]
正确的数据开始行动。ViewData.Model 在调用局部视图之前包含正确的 id。此外,我通过视图进行了调试,并且数据被正确设置为控件,但响应正文(由 IE 开发工具检查)的 id = 0。您能否告知我的代码有什么问题?