0

在我的ASP MVC3站點的編輯頁面上,有一部分代碼處理附加到每個模型項目的動態數量的代理。下面的代碼被用於創建錶行的確切數額顯示ASP MVC3 - 爲多個項目設置下拉列表

@for (int i = 0; i < Model.Fixed.Count; i++) 
    { 
     if(!String.IsNullOrWhiteSpace(Model.Fixed[i].AgentId)) 
     { 
      <tr> 
      <td> 
       @Html.DropDownListFor(model => model.Fixed[i].StateCode, 
       (SelectList)ViewBag.StateCodeList) 
      </td> 
      <td> 
       @Html.EditorFor(model => model.Fixed[i].AgentId) 
       @Html.ValidationMessageFor(model => model.Fixed[i].AgentId) 
      </td> 
      </tr>     
     } 
    } 

不幸的是,我不知道如何來顯示與每個代理相關聯的屬性狀態代碼。眼下這段代碼是在與設置下拉列表值交易的控制器控制的惟一領域:

 SelectList tmpList = new SelectList(new[] { "AL", "AK", "AS", "AZ", "AR", "CA", "CO", "CT", "DE", "DC", "FM", "FL", "GA", "GU", "HI", "ID", "IL", "IN", "IA", "KS", "KY", "LA", "ME", "MH", "MD", "MA", "MI", "MN", "MS", "MO", "MT", "NE", "NV", "NH", "NJ", "NA", "NM", "NY", "NC", "ND", "MP", "OH", "OK", "OR", "PW", "PA", "PR", "RI", "SC", "SD", "TN", "TX", "UT", "US", "VT", "VI", "VA", "WA", "WV", "WI", "WY" }); 
     ViewBag.StateCodeList = tmpList; 

由於可以從0到100代理商在任何地方,我遇到的問題是顯示正常狀態在各自下拉框中與該特定代理關聯的代碼。

回答

0

彼時我發現超載這一相當快:

   <td> 
        @Html.DropDownListFor(model => model.Fixed[i].StateCode, 
         (SelectList)ViewBag.StateCodeList, Model.Fixed[i].StateCode) 
       </td> 
+0

你應該考慮'SelectList'移動到您的視圖模型(以及使用視圖模型,如果你不是)。儘可能避免ViewBag。 –