如何从剃须刀修改列表<模型>项目

本文关键字:模型 项目 列表 修改 剃须刀 | 更新日期: 2023-09-27 18:33:28

我有一个RAZOR(ASP.NET MVC 3)和一个类型为List的模型。我想将模型中的任何元素修改为 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保存相同的模型,但如果它经历了一些更改,则对其进行修改

还有我的阿贾克斯电话:

      $("#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) {  }
        });

谢谢

如何从剃须刀修改列表<模型>项目

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

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

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

@Url.Action(Action, Controller) 

或者在您的情况下:

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

编写起来更简洁一些,并且更容易添加其他参数。