如何配置 ViewModel 和 View 以支持包含以下枚举的下拉列表:
public enum PersonType
{
Bride,
Groom
}
我希望下拉列表的文本显示“新娘”、“新郎”,并且值分别为 0 和 1。我也想为 View 配置默认值(新娘或新郎)。这样做的目的是为了创建一个“创建”表单,我将发布该表单,然后确定选择了哪个选项(我猜我的 ViewModel 中需要一个 int 来跟踪用户选择的内容)。这将如何连接?我正在使用 Razor。
最佳答案
public enum PersonType
{
Bride=0,
Groom=1
}
在您的模型中,您将拥有类似的属性
public class mymodel{
[Required(ErrorMessage="this field is required")]
public int ID{get;set;}
public IEnumerable<KeyValuePair<string, string>> _list{get;set}
}
在你的 Controller 中
mymodel model = new mymodel();
model._list=Enum.GetNames(typeof(PersonType))
.Select(x => new KeyValuePair<string, string>(x, x.ToString()));
return View(model);
在你看来
@Html.DropDownListFor(x=>x.ID,new SelectList(model._list,"key","value"))
@ValidationMessageFor(x=>x.ID)
关于c# - 使用 ViewModel 来自具有默认值的 Enum 的 DropDownListFor,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8598715/