所以,这是我用过的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")
答案 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.Name
是SelectListItem
的不可数量因此,当您填写此集合时,您可以使用该项目的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 ")