0

我有一个下拉使用

@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这样它的值就不会是空字符串吗?

4

1 回答 1

1

我将我的选择列表加载到控制器中。所以它作为视图模型的一部分出现在页面上。

以下将加载带有 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>

希望这说明清楚。

于 2013-02-15T03:27:36.773 回答