-1

我想根据 asp.net mvc 3 razar 视图中的类属性值隐藏下拉列表

4

3 回答 3

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" });
    }
}
于 2012-05-15T11:05:35.293 回答
4

你想简单地完全排除下拉菜单吗?

@if (!Model.DontShowDropdown)
{
    @Html.DropDownListFor(....)
}

或者,你想隐藏它吗?

Html.DropDownListFor(..., new { "style" = Model.DontShowDropDown ? "display:none" : "" };
于 2012-05-15T11:09:40.040 回答
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,然后你可以添加display:none; 在外部 css 中或将其添加到内联 css,如style = "display:none;"

于 2012-05-15T11:08:37.247 回答