MVC下拉列表:设置类名和默认选定项

时间:2013-02-15 02:51:23

标签: asp.net-mvc drop-down-menu selecteditem

我使用

下拉
@Html.DropDownListFor(model => model.param, new SelectList
      (Model.MyList, "Value", "Text"), "Select")

这将列表的第一项设置为“选择”。我有两个问题: 我可以为此下拉列表分配一个类以及所选的值吗?我试过了

 @Html.DropDownListFor(model => model.param, new SelectList
      (Model.MyList, "Value", "Text"), new{@class="clname", @value="Select")

但它不起作用

另外,我可以将值设置为默认文本select,使其值不是空字符串吗?

1 个答案:

答案 0 :(得分:1)

我在控制器中加载选择列表。因此它作为viewmodel的一部分进入页面。

以下内容将使用css类clname加载下拉菜单,第一个选项为"-- Select --"

@Html.DropDownListFor(model => model.param, 
          Model.MySelectList, 
          "-- Select --", 
          new { @class = "clname"})
  

另外,我可以将值设置为默认文本选择以使其值   不会是一个空字符串?

为此,您应该使用适当的值加载控制器中的选择列表。

视图模型:

public class HomeViewModel
{
    public string MyParam {get;set;}
    public List<SelectListItem> MySelectList {get;set;}
}

控制器:

public class HomeController
{
    public ActionResult Index()
    {
          var model = new HomeViewModel();
          // to load the list, you could put a function in a repository or just load it in your viewmodel constructor if it remains the same.
          model.MySelectList = repository.LoadMyList();
          model.MyParam = "Select"; // This will be the selected item in the list.
          return View(model);
    }
}

查看:

@model MyProject.HomeViewModel

<p>Select:
@Html.DropDownListFor(model => model.MyParam, 
          Model.MySelectList, 
          new { @class = "clname"})
</p>

希望能说清楚。