我有一个RAZOR(ASP.NET MVC 3)和一个List类型的模型。 我想修改从Model到Razor的任何元素,之后发布完全相同的模型BUT,用任何值MODIFIED(如果它被修改)更新。
@foreach (var item in Model)
{
<tr>
<td>@Html.DisplayFor(modelItem => item.InputID)</td>
@if (@ViewBag.editFlag)
{
<td>@Html.TextBoxFor(modelItem => item.InputName)</td>
}
else
{
<td>@Html.DisplayFor(modelItem => item.InputName)</td>
}
}
。我希望为AJAX CALL保存相同的模型,但如果它经历了一些更改则修改
我的ajax电话:
$("#editButton").click(function () {
$.ajax({
type: "POST",
url: "@Url.Content("~/PhysicalInput/UpdatePhysicalInput")",
data: {
jsonData: @Html.Raw(Json.Encode(@Model));
},
cache: false,
success: function (html)
{
if (html.Success)
{
window.location.href="ViewList?editFlag=false";
}
else { }
},
error: function(e) { }
});
由于
答案 0 :(得分:0)
您所拥有的只是将原始模型发布回服务器。如果您没有大型模型,则需要将数据行更改为:
data: { field1: $('.field1').val(), field2: $('.field2').val(), etc }
这会将这些字段的当前值发送回您的操作。 只需注意,您可以用以下内容替换您的Url.Content:
@Url.Action(Action, Controller)
或在你的情况下:
@Url.Action("UpdatePhysicalInput", "PhysicalInput")
写一点清洁,使添加其他参数变得更容易。