2013-12-09 48 views
1

我是新來的MVC 4,我被困在一個問題,我已綁定表動態地從數據庫中的一些數據如下CSHTML頁如何從動態創建的表中的數據在asp.net MVC 4

<table id="tblFeature"> 
          <tr> 
           <th> 
            Include 
           </th> 
           <th> 
            Facilities 
           </th> 
           <th> 
            Description 
           </th> 
          </tr> 
          @foreach (var feature in Model) 
          { 
           <tr> 
            <td>@Html.EditorFor(item => feature.Checked) 
            </td> 
            <td>@Html.DisplayFor(item => feature.Name) 
            </td> 
            <td>@Html.TextAreaFor(item => feature.Description, 2, 70, null) 
            </td> 
           </tr> 

          } 
         </table> 

現在我想要更新值,例如選中或取消選中複選框,更新文本區域中的描述等,以實現我需要在控制器類的列表中添加更新的值,然後我會更新數據庫中的這些值。但我不知道如何實現這一點,它是像下面的普通英語

foreach(feature in tblFeature) 
{ 
    if(feature is checked) 
     { 
      featureList.add(feature) 
     } 
} 

任何幫助將不勝感激。謝謝。

回答

0

更改視圖爲正確的綁定:

@using (Html.BeginForm("Save", "Controller")) 
    { 
    <table id="tblFeature"> 
      <tr> 
       <th> 
       Include 
       </th> 
       <th> 
       Facilities 
        </th> 
       <th> 
      Description 
      </th> 
     </tr> 
     @for (int i = 0; i < Model.Count(); i++) 
     { 
      <tr> 
      @Html.HiddenFor(m => m[i].ProductSizeID) 
      <td>@Html.EditorFor(m => m[i].Checked) 
      </td> 
      ... 
       </td> 
      </tr> 
     <input type="submit" value="save"/> 
     } 

郵政控制器,節省變化

[HttpPost] 
public ActionResult Save(IEnumerable<feature> ViewModels) 
    { 
    foreach (var feature in ViewModels) 
    { 
     if(feature.Checked) 
     { 
     featureList.add(feature) 
     } 
    } 
    }