c# - 使用 ViewModel 来自具有默认值的 Enum 的 DropDownListFor

标签 c# asp.net-mvc asp.net-mvc-3 razor viewmodel

如何配置 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/

相关文章:

c# - 运行 dev-certs https --trust 后,dotnet run 报错找不到默认的开发者证书

c# - 许可证执行系统在调用 wkhtmltopdf.exe 时被篡改 - win server 2008

c# - System.Diagnostics.Stopwatch 的准确性如何?

c# - 使用 ASP.NET MVC 将 html 表导出到 Excel 文件

c# - 当 url 末尾有 DOT (.) 时,Asp.Net MVC 路由操作方法不会调用

c# - 在 linux 服务上处理 kill - .NET Core 1.1

c# - MVC 路由问题 : null entry

asp.net-mvc - SessionProvider 的 Couchbase 存储桶与 Memcached 存储桶

entity-framework - 无法先使用 Entity Framework 4.1 代码更改连接字符串

asp.net-mvc-3 - MVC3隐藏字段的强制验证