小编Jac*_*ack的帖子

使用来自MVC 2中手动定义的SelectListItems的SelectList渲染问题

我正在使用ASP.NET MVC 2(.NET 3.5),需要手动定义什么是选项列表.当我这样做时,我得到一个下拉菜单,每个手册条目读取'System.Web.Mvc.SelectListItem'.

我的视图模型定义了这样的列表:

    public SelectList YesNoList
    {
      get
      {
        List<SelectListItem> tmpList = new List<SelectListItem>();
        tmpList.Add(new SelectListItem {Text = "", Value = ""});
        tmpList.Add(new SelectListItem {Text = "Yes", Value = "1"});
        tmpList.Add(new SelectListItem {Text = "No", Value = "0"});
        YesNoList = new SelectList(tmpList,"");
      }
      private set{}
     }
Run Code Online (Sandbox Code Playgroud)

在视图中,我使用Html.DropDownList引用它:

Html.DropDownList("FieldName", viewmodel.YesNoList);
Run Code Online (Sandbox Code Playgroud)

我期望在最终网页上呈现的内容应该是:

<select id="FieldName" name="FieldName">
  <option value=""/>
  <option value="1">Yes</option>
  <option value="0">No</option>
</select>
Run Code Online (Sandbox Code Playgroud)

相反,我得到:

<select id="FieldName" name="FieldName">
  <option>System.Web.Mvc.SelectListItem</option>
  <option>System.Web.Mvc.SelectListItem</option>
  <option>System.Web.Mvc.SelectListItem</option>
</select>
Run Code Online (Sandbox Code Playgroud)

我很茫然,因为我无法弄清楚为什么返回类型所以如果有人能指出我对viewmodel定义有什么问题,或者指出更好的方法,我会很感激.我对从C#类集合派生SelectList犹豫不决,因为SelectList将提供迭代遍历值和显示文本的一致方式.

在此先感谢,希望有人可以提供帮助.

干杯,

Ĵ

c# model-view-controller selectlist asp.net-mvc-2

5
推荐指数
1
解决办法
5914
查看次数