2013-09-30 48 views
0

我試圖從視圖傳遞一個帶有列表屬性的模型,以發佈後動作。該列表在帖子後返回null,但我們需要列出新項目以更新其信息。我的模型是這樣的:MVC4如何將模型指令列表傳遞給視圖

public class Person() 
    { 
    internal string Name {get;set;} 
    internal decimal Age {get;set;} 
    internal List<int> Rate {get;set;} 
    } 

視圖填充了他們目前的信息,我們使用foreach通過列表進行迭代,併產生文本框的編輯功能。當人在編輯所需值後提交時,視圖將轉到[HttpPost]操作,但值爲空。

視圖被@using(Html.BeginForm(模型))包圍,並在提交時,模型被傳遞給帖子操作,但列表爲空。所有其他值都被填充。

任何想法? P.S.我們正在使用c#和Razor View Engine 抱歉,但列表仍然沒有傳遞給模型,這裏是4循環。

 @{ int i = 0;} 
     <table> 
     @for (i = 0; i < Model.VendorContracts.Count; i++) 
     { 

      if (i == 0) 
      { 
        <tr> 
         <th> 
          Vendor Contracts 
         </th> 
         <th> 
         Effective Date 
         </th> 
        </tr> 

      } 
      if (i < 5) 
      { 
       <tr> 
        <td>@Model.VendorContracts[i] 
        </td> 

        <td>@Html.TextBoxFor(model => model.EffectiveDates[i])</td> 
       </tr> 
      } 
      if (i == 5 || i == 10 || i == 15 || i == 20) 
      { 
       @:</table> 
       @:<table> 
       } 
      if (i >= 5) 
      { 
       if (i == 5 || i == 10 || i == 15 || i == 20) 
       { 
       <tr> 
       <th>Vendor Contracts 
       </th> 
       <th> 
       Effective Date 
       </th> 
       </tr> 
       } 
      <tr> 
      <td> 
      @Model.VendorContracts[i] 
      </td> 
      <td>@Html.TextBoxFor(model => model.EffectiveDates[i])</td> 
      </tr> 
      } 
     } 
     </table> 
+0

發表您的看法,以及 – ediblecode

回答

0

我可以給你一個部分答案。要加載列表項,使他們在HttpPost回來,你需要做的這個視圖

for(int idx = 0;idx < Model.Rate.Count;idx++) 
{ 
    @Html.TextBox("Foo", Model.Rate[idx]) 
} 

的核心思想是@Html.TextBox("Foo", Model.Rate[idx]),你必須引用率列表中的項目時要使用一個索引。這樣,當您回發時,MVC模型活頁夾將能夠選取列表項目,包括對這些項目的任何更改。

至於拿起用戶添加的新項目,我不確定。也許另一個SO用戶可以幫忙?但希望我的回答有所幫助。

相關問題