在asp.net mvc中显示下拉列表的Razor语法
我的视图模型中有一个逗号分隔的字符串:在asp.net mvc中显示下拉列表的Razor语法,asp.net,asp.net-mvc-3,razor,Asp.net,Asp.net Mvc 3,Razor,我的视图模型中有一个逗号分隔的字符串: vm.colours = "black, white, blue, green" 在我的Razor页面中,我想显示一个下拉列表,因此我有: @Html.DropDownList(m => m.colours, new SelectList(Model.colours)) 但是,这为字符串中的每个字母提供了一个select列表项 我有没有办法修改这个,给我一个每种颜色的选择列表 谢谢, 标记嗯,看起来颜色不是一个IEnumerable,而是一个字符
vm.colours = "black, white, blue, green"
在我的Razor页面中,我想显示一个下拉列表,因此我有:
@Html.DropDownList(m => m.colours, new SelectList(Model.colours))
但是,这为字符串中的每个字母提供了一个select列表项
我有没有办法修改这个,给我一个每种颜色的选择列表
谢谢,
标记嗯,看起来颜色不是一个
IEnumerable
,而是一个字符串
。由于SelectList
将枚举传入的对象,因此在本例中,这意味着对返回所有字符的字符串进行枚举。请使用字符串数组进行尝试:
vm.colors=新字符串[]{“黑”、“白”、“蓝”、“绿”}代码>
对Html.DropDownList
的调用保持不变。嗯,看起来颜色不是一个IEnumerable
,而是一个字符串。由于SelectList
将枚举传入的对象,因此在本例中,这意味着对返回所有字符的字符串进行枚举。请使用字符串数组进行尝试:
vm.colors=新字符串[]{“黑”、“白”、“蓝”、“绿”}代码>
对Html.DropDownList
的调用保持不变。此时您只发送一个字符串,它只是一个字符数组,因此在此上下文中它被解释为这样。使用Split
方法分离所需的元素
编辑:
检查在本例中使用Split
的代码示例。此时您只发送一个字符串,它只是一个字符数组,因此在本上下文中它被解释为这样。使用Split
方法分离所需的元素
编辑:
检查在这种情况下使用Split
的代码示例
@DropDownList(m=>m.colors,新选择列表(Model.colors))
DropDownList的重载不接受表达式。要使该代码正常工作,您需要这样做:
Html.DropDownList("give_it_a_name", new SelectList(Model.colours))
public class YourVM
{
public string SelectedColor{get;set;}
public IEnumerable<string> Colors {get;set;}
}
或者您可能想使用DropDownListFor
,如果是,则需要两件事:
将接受从下拉列表中选择的项的属性
用于在下拉列表中显示选项的列表
您的视图应该如下所示:
Html.DropDownList("give_it_a_name", new SelectList(Model.colours))
public class YourVM
{
public string SelectedColor{get;set;}
public IEnumerable<string> Colors {get;set;}
}
最后,在你看来:
@Html.DropDownListFor(m => m.colours, new SelectList(Model.Colors))
@DropDownList(m=>m.colors,新选择列表(Model.colors))
DropDownList的重载不接受表达式。要使该代码正常工作,您需要这样做:
Html.DropDownList("give_it_a_name", new SelectList(Model.colours))
public class YourVM
{
public string SelectedColor{get;set;}
public IEnumerable<string> Colors {get;set;}
}
或者您可能想使用DropDownListFor
,如果是,则需要两件事:
将接受从下拉列表中选择的项的属性
用于在下拉列表中显示选项的列表
您的视图应该如下所示:
Html.DropDownList("give_it_a_name", new SelectList(Model.colours))
public class YourVM
{
public string SelectedColor{get;set;}
public IEnumerable<string> Colors {get;set;}
}
最后,在你看来:
@Html.DropDownListFor(m => m.colours, new SelectList(Model.Colors))
如果这段代码甚至不能编译,这怎么可能是公认的答案呢?这对其他寻求权利的人来说是误导answer@vonv. 你说得对,我只是在一个地方更新了线路,没有检查。我删除了代码以避免误导,稍后再检查。谢谢你指出这一点。不用担心@KonradGadzina,我们都想成为开发者的好资源,所以最终的目标是拥有最好的内容。感谢您编辑您的答案;)如果这段代码甚至不能编译,这怎么可能是公认的答案呢?这对其他寻求权利的人来说是误导answer@vonv. 你说得对,我只是在一个地方更新了线路,没有检查。我删除了代码以避免误导,稍后再检查。谢谢你指出这一点。不用担心@KonradGadzina,我们都想成为开发者的好资源,所以最终的目标是拥有最好的内容。感谢您编辑您的答案;)