Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/295.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 具有int值的枚举的MVC DropDownList_C#_Asp.net Mvc_Model View Controller_Enums_Html.dropdownlistfor - Fatal编程技术网

C# 具有int值的枚举的MVC DropDownList

C# 具有int值的枚举的MVC DropDownList,c#,asp.net-mvc,model-view-controller,enums,html.dropdownlistfor,C#,Asp.net Mvc,Model View Controller,Enums,Html.dropdownlistfor,好的,这是一个困扰我的问题,自从我在3年前第一次开始玩MVC以来。 绑定到dropdownlists一直是一件痛苦的事情,但是有一种简单的方法可以为enum做到这一点: @Html.DropDownListFor(model => model.Type, new SelectList(Enum.GetValues(typeof(mediaZone.Common.Models.AssetType)), Model.Type)) 很好,但唯一的问题是该解决方案将输出如下内容: <se

好的,这是一个困扰我的问题,自从我在3年前第一次开始玩MVC以来。 绑定到dropdownlists一直是一件痛苦的事情,但是有一种简单的方法可以为enum做到这一点:

 @Html.DropDownListFor(model => model.Type, new SelectList(Enum.GetValues(typeof(mediaZone.Common.Models.AssetType)), Model.Type))
很好,但唯一的问题是该解决方案将输出如下内容:

<select id="Type" name="Type">
    <option>Image</option>
    <option selected="selected">Video</option>
    <option>Website</option>
</select>
<select id="Type" name="Type">
    <option value="1">Image</option>
    <option value="2" selected="selected">Video</option>
    <option value="3">Website</option>
</select>

形象
视频
网站
我想做的是输出如下内容:

<select id="Type" name="Type">
    <option>Image</option>
    <option selected="selected">Video</option>
    <option>Website</option>
</select>
<select id="Type" name="Type">
    <option value="1">Image</option>
    <option value="2" selected="selected">Video</option>
    <option value="3">Website</option>
</select>

形象
视频
网站
我们现在使用的是MVC版本5,您可能会认为很多人都有这个问题,不想编写代码来修复它。 我真的希望有人能用一句话来解决我这个琐碎的问题:)

干杯,
/r3plica

在控制器中执行,它只是枚举项的foreach,返回一个包含2个值的集合,而不仅仅是名称

然后。。。在您看来,您可以得到一行代码,比现在的代码要干净得多:

@Html.DropDownListFor(model => model.Type, Model.MySelectList)

使用foreach的其他好处是,您可能需要在每个枚举项的名称中进行国际化,这样您就可以在foreach期间进行转换。

在控制器中进行转换,它只是枚举项的foreach,返回一个包含2个值的集合,而不仅仅是名称

然后。。。在您看来,您可以得到一行代码,比现在的代码要干净得多:

@Html.DropDownListFor(model => model.Type, Model.MySelectList)

进行foreach的其他好处是,您可能需要在每个Enum项的名称中进行国际化,这样您就可以在foreach期间进行翻译。

您是否看过我要找的内容。我不想要一个助手类,我甚至不想再写一行代码。我知道我自己“可以”写一个助手类,但肯定的是,这么简单的东西应该只是MVC的一部分……所以。。。你需要知道你的问题是否有一线解决方案。。。这就是你的问题?然后:不。行计数的事情,回到青春期:)看起来很奇怪,我可以在一行中根据我的枚举创建一个下拉列表,但是我也不能指定默认值……你没有看到我要找的东西吗。我不想要一个助手类,我甚至不想再写一行代码。我知道我自己“可以”写一个助手类,但肯定的是,这么简单的东西应该只是MVC的一部分……所以。。。你需要知道你的问题是否有一线解决方案。。。这就是你的问题?然后:不。行计数的事情,回到青春期:)看起来很奇怪,我可以在一行中根据我的枚举创建一个下拉列表,但我也不能指定默认值。。。。。