0

を使用してドロップダウンがあります

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

これにより、リストの最初の項目が「選択」に設定されます。2つの質問があります:このドロップダウンと選択した値にクラスを割り当てることはできますか?私は試した

 @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"})

また、値が空の文字列にならないように、デフォルトのテキスト選択に値を設定できますか?

このためには、適切な値を使用して選択リストをコントローラにロードする必要があります。

ViewModel:

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 に答える