Html.DropDownList的默认值

时间:2012-05-04 07:38:58

标签: asp.net asp.net-mvc-3 razor

所以,这是我用过的Html助手:

        @Html.DropDownList("FK_gestCompte", User.Identity.Name)

这给出了这个html结果:

 <select id="FK_gestCompte" name="FK_gestCompte"><option value="">user3</option>
 <option value="1">user1</option>
 <option value="2">admin</option>
 <option value="3">user2</option>
 <option value="5">user3</option>
 </select>

我不知道如何设置这样的第一行:

 <select id="FK_gestCompte" name="FK_gestCompte"><option value="5">user3</option>

我创建的选择列表就像在控制器内创建的那样:

        ViewBag.FK_gestCompte = New SelectList(db.my_aspnet_users, "id", "Name")

任何想法?


以下是帕尔玛的解决方案:

控制器:

        Dim ident As Integer = (From a In db.my_aspnet_users
                             Where a.name = User.Identity.Name
                             Select a.id).FirstOrDefault()
        ViewBag.FK_gestCompte = New SelectList(db.my_aspnet_users, "id", "Name", ident)

观点:

        @Html.DropDownList("FK_gestCompte")

3 个答案:

答案 0 :(得分:2)

 its possible in this way

 @Html.DropDownListFor(model => model.UserType,
                       new SelectList(new List<Tuple<string, string>>
                       {
                         new Tuple<string, string>("1", "User"),                    
                          new Tuple<string, string>("2", "Admin"),                    
                        }, "Item1", "Item2", "2"))

  Admin will be selected by default as we have set "2" as a selected value

答案 1 :(得分:2)

通过您正在使用的方法签名

  @Html.DropDownList("FK_gestCompte", User.Identity.Name)

我认为User.Identity.NameSelectListItem的不可数量因此,当您填写此集合时,您可以使用该项目的Selected属性将任何项目设置为所选项目

答案 2 :(得分:1)

您可以尝试添加排序。

所以,db.my_aspnet_users.OrderByDescending(i => i.id)

编辑:刚看到第一个选项是<option value="">user3</option>

&#34; user3&#34;出现在您的数据源中两次?

编辑2:

试试这个:

var users = db.my_aspnet_users.ToList();

var userSelectList = users.OrderBy(i => i.name)
                      .Select(thisUser =>
                          new SelectListItem
                          {
                              Selected = (thisUser.name == User.Identity.Name),
                              Text = thisUser.name,
                              Value = thisUser.id.ToString()
                          });

然后用

替换帮助器
@Html.DropDownList("userSelectList ")