我非常确定我应该在这里使用ViewModel,但由于我的功能已经存在,这似乎有点浪费,但是这里有一个问题。
我有一个下拉列表,在回发时,将所选值发送到我的控制器,然后我用它来过滤搜索结果。这一切都运行正常,但我需要一个默认值,但我也希望它使用bootstrap进行样式设置,所以我需要添加" form-control"上课。
所以这就是我所拥有的:
@Html.DropDownList("filterApp", "-- Select One --", new { @class = "form-control" })
最后的HtmlAttributes似乎没有效果,但如果我使用@ Html.DropDownListFor()代替它,它会起作用。由于这根本没有与我的模型相关联,所以我无法使用DropDownListFor()。
任何人都建议我如何避免创建ViewModel来解决这个问题?
谢谢!
更新:这解决了我的问题,谢谢你的帮助!
@Html.DropDownList("filterApp", null, "-- Select One --", new { @class = "form-control" })
答案 0 :(得分:0)
您对DropDownList
使用了错误的重载。你应该使用这个:
public static MvcHtmlString DropDownList(
this HtmlHelper htmlHelper,
string name,
IEnumerable<SelectListItem> selectList,
string optionLabel,
IDictionary<string, Object> htmlAttributes
)
在这里你可以找到每一个重载:
答案 1 :(得分:0)
您可以从列表中选择DropDownList方法的正确重载,并使用符合您要求的方法。例如:
@Html.DropDownList("filterApp", SelectListItems, "-- Select One --",
new { @class = "form-control" })
如果您不希望自己的选择与任何属性相关联,则根本不必使用扩展方法,HTML select
将适用于您:
<select name="filterApp" class="form-control">
<option value="">-- Select One --</option>
<!-- other options -->
</select>