-3

我有一个 RAZOR (ASP.NET MVC 3) 和一个 List 类型的模型。我想将 Model 中的任何元素修改为 Razor,然后发布完全相同的模型,但要使用任何值 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) {  }
        });

谢谢

4

1 回答 1

0

您所拥有的只是将原始模型发布回服务器。如果您没有大型模型,则需要将数据线更改为:

data: { field1: $('.field1').val(), field2: $('.field2').val(), etc }

这会将这些字段的当前值发送回您的操作。请注意,您可以将 Url.Content 替换为:

@Url.Action(Action, Controller) 

或者在你的情况下:

@Url.Action("UpdatePhysicalInput", "PhysicalInput")

编写起来更简洁,并且可以更轻松地添加其他参数。

于 2013-09-30T19:54:22.223 回答