我想根据asp.net mvc 3 razar视图中的类属性值隐藏下拉列表
答案 0 :(得分:4)
您可以将CSS类应用于下拉列表:
@Html.DropDownListFor(x => x.SelectedItemId, Model.Items, new { @class = "hidden" })
然后定义隐藏的CSS类:
.hidden {
display: none;
}
这个隐藏类当然可以根据视图模型的某些属性值动态应用。例如,您可以编写一个自定义HTML帮助程序,可以这样使用:
@Html.DropDownListFor(
x => x.SelectedItemId,
Model.Items,
Html.GetHtmlAttributes(Model.IsHidden)
)
GetHtmlAttributes
是您可以编写的自定义扩展方法:
public static class HtmlExtensions
{
public static RouteValueDictionary GetHtmlAttributes(bool isHidden)
{
if (!isHidden)
{
return null;
}
return new RouteValueDictionary(new { @class = "hidden" });
}
}
答案 1 :(得分:4)
您想完全排除下拉列表吗?
@if (!Model.DontShowDropdown)
{
@Html.DropDownListFor(....)
}
或者,你想隐藏吗?
Html.DropDownListFor(..., new { "style" = Model.DontShowDropDown ? "display:none" : "" };
答案 2 :(得分:0)
您可以使用此前缀:
@Html.DropDownList("mydropdown", new SelectList(new[] {
new SelectListItem{ Value = "0",Text="Item1"},
new SelectListItem{ Value = "1",Text="Item2"},
new SelectListItem{ Value = "2",Text="Item3"},
new SelectListItem{ Value = "3",Text="Item4"}
}, "Value", "Text", "2"), new
{
id = "mydropdown",
@class = "myddClass",
style = ""
})
在css中添加 #mydropdown 或 .myddClass ,然后您可以在外部css中添加 display:none; 或添加将其添加到内联css喜欢 style =“display:none;”