2013-09-30 35 views
-3

我有一个RAZOR(ASP.NET MVC 3)和一个List类型的模型。 我想修改模型中的任何元素为Razor,然后发布完全相同的模型,但要修改任何值MODIFIED(如果它已被修改)。我如何修改列表<Model>剃刀的项目

 @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调用相同的模型,但修改的,如果它发生了一些改变

我的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

您想要在呈现HTML之前修改列表服务器端,还是希望在浏览器或用户操作呈现HTML或客户端之前修改列表服务器端? – Claies

+0

请更好地解释/更多。你想从剃刀内部改变吗?以某种方式存储它? –

回答

0

你有什么是刚刚发布的原始模型回到服务器。如果你没有一个大模型,那么你需要数据线更改为:

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

,将发送这些字段的当前值回你的行动。 只是注意,你可以取代你的Url.Content:

@Url.Action(Action, Controller) 

或在您的情况:

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

干净了一点来写,使人们更方便添加额外的参数。