如何在ASP.NET MVC3中创建下拉列表?

3
我是一个有用的助手,可以提供文本翻译。
我试图在一个基于ASP.NET MVC3视图的下拉列表中创建一个允许值列表。到目前为止,在我的模型中,我已经得到了:
```html

我试图在一个基于ASP.NET MVC3视图的下拉列表中创建一个允许值列表。

到目前为止,在我的模型中,我已经得到了:

```
namespace NS 
{
    public class Model
    {
        public Model() 
        {
            Status = new List<SelectListItem>();
            Status.Add(new SelectListItem { Text = "New", Value = "New" });
            Status.Add(new SelectListItem { Text = "PaymentPending", Value = "PaymentPending" });
            Status.Add(new SelectListItem { Text = "PaymentProcessed", Value = "PaymentProcessed" });
            Status.Add(new SelectListItem { Text = "Dispatched", Value = "Dispatched" });
            Status.Add(new SelectListItem { Text = "Complete", Value = "Complete" });
            Status.Add(new SelectListItem { Text = "Cancelled", Value = "Cancelled" });
        }

        public List<SelectListItem> Status { get; set; }
    } // class Model
} // NS

在我看来,我有以下几点看法:

@model NS.Model
@Html.DropDownListFor(Model.Status)

根据 SO 上的答案,但我得到了一个错误:
编译器错误消息:CS1501:方法'DropDownListFor'的重载不接受1个参数。
非常感谢任何提示。
2个回答

5
错误信息已经很明显了,DropDownListFor 帮助程序需要两个参数。请修改您的模型以包含一个属性以包含所选值。
public class Model
{
public Model() {
  Status = new List<SelectListItem>();
  Status.Add(new SelectListItem { Text = "New", Value = "New" });
  Status.Add(new SelectListItem { Text = "PaymentPending", Value = "PaymentPending" });
  Status.Add(new SelectListItem { Text = "PaymentProcessed", Value = "PaymentProcessed" });
  Status.Add(new SelectListItem { Text = "Dispatched", Value = "Dispatched" });
  Status.Add(new SelectListItem { Text = "Complete", Value = "Complete" });
  Status.Add(new SelectListItem { Text = "Cancelled", Value = "Cancelled" });
}
public List<SelectListItem> Status { get; set; }
public string SelectedVal{get;set;}
} 

在视图中,然后
@NS.Model
@Html.DropDownListFor(x=> x.SelectedVal, x.Status)

0

第一个参数是来自模型下拉列表的选定值。第二个值是状态列表。

@Html.DropDownListFor(x=> x.SelectedValue, Model.Status)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接