Setting a default selected value in DropDownList i

2019-02-16 16:28发布

In MVC3 I have this code at my controller. It retrieves a List of IDs\Names from Installation table and creates a ViewBag

var vs = dba.Installation.OrderBy(q => q.InstName).ToList();
ViewBag.Vessels = new SelectList(vs, "InstId", "InstName");

Now, at my view. I want to render the list in a dropdown list. I used the Html helper that works fine...

@Html.DropDownList("InstId",(SelectList)ViewBag.Vessels, "- Select one -")

I need to set first item in the ViewBag List as a default selected value, instead of "- Select one -" text.

How can I do it?

Thanks in advance!

3条回答
走好不送
2楼-- · 2019-02-16 16:49

I need to set first item in the ViewBag List as a default selected value, instead of "- Select one -" text.

Then you need to select the first item in your list (vs) and get it's id and use it as the selecedValue in the SelectList:

ViewBag.Vessels = new SelectList(vs, "InstId", "InstName", 
    vs.FirstOrDefault().InstId);
查看更多
老娘就宠你
3楼-- · 2019-02-16 16:57

You can also create an Helper class for Dropdownlist It will have a method to set the text as by default text for every dropdownlist in you solution

查看更多
smile是对你的礼貌
4楼-- · 2019-02-16 16:59

There's an overload for the SelectList constructor that takes 4 arguments. The last of which is the default selected object. E.g:

ViewBag.Vessels = new SelectList(vs, "InstId", "InstName", selectedValue);

Where selectedValue is an object of whatever type is in your list.

查看更多
登录 后发表回答