Asp.net mvc 如何使用ASP.NET MVC为DropDownList选择默认值

Asp.net mvc 如何使用ASP.NET MVC为DropDownList选择默认值,asp.net-mvc,asp.net-mvc-4,c#-4.0,razor,Asp.net Mvc,Asp.net Mvc 4,C# 4.0,Razor,我需要显示基于DB值的下拉文本。我找不到解决办法 DB值: RolesID DeptID UserID 2 1 100 5 2 200 @for(var i = 0;i < Model.RoleList.Count;i++) { <tr> <td>@Html.DropDownListFor(m => Model.RoleList[i].RoleId, new SelectList(Model

我需要显示基于DB值的下拉文本。我找不到解决办法

DB值:

RolesID  DeptID  UserID
2        1        100
5        2        200
@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>
}
查看

@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>
}
@foreach(Model.RoleList中的变量gt)
{
@DropDownListFor(m=>m.Role,新选择列表(Model.Role,“RoleId”,“RoleName”,“gt.RoleId”),新{@class=“form control”})
@Html.DropDownListFor(m=>m.Plants,新选择列表(Model.Department,“DeptId”,“DeptName”,“gt.DeptId”),新{@class=“form control”})
@使用(Ajax.BeginForm(“deletedet”,new AjaxOptions(){UpdateTargetId=“Edit User”,AllowCache=true,InsertionMode=InsertionMode.ReplaceWith}))
{
@Html.Hidden(“userId”,@gt.userId)

} }
Model.RoleList-包含用户角色id和部门id的列表

模型.角色-包含角色列表(主表)

问题:

RolesID  DeptID  UserID
2        1        100
5        2        200
@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>
}
  • 是否有其他方式显示dropdownlist的默认文本
  • 基于RoleId,我必须在下拉列表中选择RoleName

此下拉列表将动态加载。

如果
foreach
循环
@Html.DropDownListFor(m=>m.Role,新选择列表(Model.Role,“RoleId”,“RoleName”,gt.RoleId),新的{@class=“form control”}
无法正常工作,因为在razor
input/select/textarea
中创建一个唯一的html
name
属性。但是使用
foreach
它无法做到这一点。因此,使用
进行循环或
编辑或模板,而不是
foreach

另外,您可以生成html,但不能在操作中发送项目列表

示例:

RolesID  DeptID  UserID
2        1        100
5        2        200
@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>
}
for(var i=0;iModel.RoleList[i].RoleId,新选择列表(Model.Role,“RoleId”,“RoleName”,Model.RoleList[i].RoleId),新{@class=“form control”}) }
也可以通过jquery/javascript即$(“#dropid”)完成。val(2)谢谢zahid,如何获得dropid?它的动态加载。。。当页面加载时,我需要显示该值哇!令人惊叹的。非常感谢您,欢迎您。@SENA