如何使用Razor视图引擎创建简单的单选列表框?我目前遇到两个问题。第一个是生成的列表框“选择”代码自动添加了“多个”。问题一是如何关闭它。不,我不想使用下拉列表框。
问题二比较棘手。尽管所讨论的项目具有选定的值,但输出html中生成的“选择”不会显示任何项目被选中。这是我的代码:
对象模型:
public class Description
{
public String code { get; set; }
public SelectList codelist;
}
控制器:
code = "drain";
codelist = new SelectList(sourcelist, "Key", "Value", "drain");
查看:
@Html.ListBoxFor(model => model.code, Model.codelist)
输出HTML:
<select data-val="true" data-val-required="The Select the permit type to apply for field is required." id="code" multiple="multiple" name="code"><option value="drain">Interior Drain Repair</option>
... yadda yadda yadda
</select>
你可以在这里看到我的两个问题。首先,选择列表中添加了“多个”,并且未选择所选选项“drain”。
有什么建议吗?我正好只是扔掉Razor并手工编写这些东西。
答案 0 :(得分:2)
要创建单个选择列表框,您可以使用DropDownListFor但设置大小属性...所以这样做:
@Html.DropDownListFor(model => model.code,
Model.codelist,
new Dictionary< string, object >() { { "size", "3"} })
答案 1 :(得分:1)
用户Html.DropDownList
而不是Html.ListBox
来创建一个选择框。
答案 2 :(得分:0)
好吧,我得到了问题一的答案 - 结果是浏览器将渲染从简单列表更改为下拉列表,如果“多个”被删除,那么我将不得不创造性地解决那一个。
问题二仍然存在 - 为什么Razor在渲染过程中不保留我选择的值?