如何在ASP.NET MVC中为DropDownListFor添加两个optionLabel

时间:2015-06-30 16:21:17

标签: asp.net-mvc asp.net-mvc-4

是否可以在ASP.NET MVC的optionLabel中添加多个@Html.DropDownListFor?基本上,我有第一个选项标签设置为"请选择"在显示其余列表项之前,我希望下一个是"创建新..."。

选择 -

  • 请选择
  • 创建新...
  • 列出项目1
  • 列出Item2,依此类推

或者,我可以决定不使用@Html.DropDownListFor并使用循环呈现下拉列表。但是,如果我这样做,那么它仍会将所选值回发给行动吗?

我想我可以添加"创建新..."它所绑定的集合的选项。但是我将其作为最后一个选项,因为它需要为每个需要这个的集合创建单独的IEnumerable包装器(并且它看起来不是一个干净的方式来完成它)

1 个答案:

答案 0 :(得分:0)

不,不是。对此最好的解决方案是创建一个List<SelectListItem>服务器端,使其具有“创建新...”选项。

这样的事情:

var options = new List<SelectListItem>();
options.Add(new SelectListItem 
                {
                    Text = "Create new...",
                    Value = "-1"
                });

// Code to loop through rest of options and add them to options

然后在您的客户端,您可能想要一个change监听器,该监听器会查找被选中的值-1,然后显示您的新对象的表单,或者您计划的任何内容每当他们选择“新建......”时都要做。