2017-05-14 99 views
1

我需要顯示基於DB值的下拉文本。我無法找到解決方案。如何使用ASP.NET MVC爲DropDownListFor選擇默認值

dB值:

RolesID DeptID UserID 
2  1  100 
5  2  200 

查看

@foreach (var gt in Model.RoleList) 
{ 
    <tr>      
     <td>@Html.DropDownListFor(m => m.Role, new SelectList(Model.Role, "RoleId", "RoleName",@gt.RoleId), new { @class = "form-control" })</td> 
     <td>@Html.DropDownListFor(m => m.Plants, new SelectList(Model.Department, "DeptId", "DeptName", @gt.DeptId), new { @class = "form-control" })</td> 

    @using (Ajax.BeginForm("deletedet", new AjaxOptions() { UpdateTargetId = "Edit-User", AllowCache = true, InsertionMode = InsertionMode.ReplaceWith })) 
    { 
     @Html.Hidden("userId", @gt.UserId) 
     <td><p data-placement="top" data-toggle="tooltip" title="Delete"><button class="btn btn-danger btn-xs" data-title="Delete" data-toggle="modal" data-target="#myTable"><span class="glyphicon glyphicon-trash"></span></button></p></td> 
    } 

    </tr> 
} 

Model.RoleList - 包含用戶角色ID和部門ID的列表。

Model.Role - 包含角色的列表(主表)

問:

  • 是否有任何其他的方式來顯示下拉列表默認的文本?
  • 基於RoleId,我必須在該下拉列表中選擇RoleName。

此下拉菜單將動態加載。

+0

它也可以通過jQuery/JavaScript的即$( '#dropid')來完成VAL(2) –

+0

感謝扎希德,如何讓dropid?它的動態加載...當頁面加載時,我需要顯示該值 – SENA

回答

1

如果foreach循環@Html.DropDownListFor(m => m.Role, new SelectList(Model.Role, "RoleId", "RoleName",gt.RoleId), new { @class = "form-control" })從來沒有正常工作,因爲在剃刀input/select/textarea創建一個獨特的HTML name attribute.But使用foreach它不能做到這一點。所以使用for循環或EditorTemplates而不是foreach

其他明智的,你可以生成的HTML,但你不能發送項目列表在你的行動。

例:

@for(var i = 0;i < Model.RoleList.Count;i++) 
{ 
    <tr> 
<td>@Html.DropDownListFor(m => Model.RoleList[i].RoleId, new SelectList(Model.Role, "RoleId", "RoleName", Model.RoleList[i].RoleId), new { @class = "form-control" })</td> 
    </tr> 
} 
+0

哇!真棒。謝謝veryquch Ashiquzzaman – SENA

+0

不客氣。@ SENA – Ashiquzzaman

相關問題