2015-04-30 85 views
1

混得AJAX交右數據我有這樣的部分視圖:不從for循環

@model InventoryControl.Models.InventoryControlModel 

<table class="table_body" style="font-size:x-small"> 
@if (Model != null) 
{ 
    for (var rolcnt = 0; rolcnt < Model.Roles.Count(); rolcnt ++) 
    { 
     <tr> 
      <td> 
       @Html.DisplayTextFor(x => x.Roles[rolcnt].ItemTypeCode) 
      </td> 
      <td> 
       @Html.CheckBoxFor(x=>x.Roles[rolcnt].Included) 
      </td> 
     </tr> 
    } 

} 
else 
{ 
    <span><i>User has no records for Inventory Control</i></span> 
} 

局部視圖與特定項目類型代碼和所包括的標誌正確地填充。然後,我嘗試用此更改回來:

function AddInventoryRole() { 
    $.ajax({ 
     type: 'POST', 
     data: $("#InventoryRoleForm").serializeArray(), 
     url: '@Url.Action("PostInventoryRoles")', 
     success: function() { 
      alert('success'); 
     }, 
     error: function() { 
      alert('error'); 
     } 
    }); 
} 

我看到控制器方法中的一些數據。項目類型代碼不存在,對於每個條目都是NULL,即使包含的標誌在帖子中是正確的。我究竟做錯了什麼?

[HttpPost] 
    public ActionResult PostInventoryRoles(InventoryControlModel model) 
    { 
     return Json(model); 
    } 

回答

2

DisplayTextFor僅用於顯示,不會被公佈,假設當前輸入複選框作品爲Included領域。

只需添加一個隱藏的,它會以同樣的方式公佈:

@Html.HiddenFor(x => x.Roles[rolcnt].ItemTypeCode)