是否有可能不在mvc 3中呈现客户端中的隐藏字段

时间:2012-05-24 06:13:40

标签: asp.net-mvc-3 razor

在asp.net中,通过visible="false"无法在客户端呈现隐藏字段。 在mvc 3中是否也可以不在客户端渲染隐藏字段?

提前致谢!

1 个答案:

答案 0 :(得分:2)

你可以提出一个条件:

@if (IsVisible)
{
    @Html.HiddenFor(x => x.Foo)
}

或编写一个自定义HTML帮助程序,它允许您直接将条件传递给帮助程序:

@Html.MyHiddenFor(x => x.Foo, IsVisible)

可以像这样实现:

public static class HtmlExtensions
{
    public static IHtmlString MyHiddenFor<TModel, TProperty>(
        this HtmlHelper<TModel> htmlHelper,
        Expression<Func<TModel, TProperty>> expression,
        bool isVisible
    )
    {
        if (!isVisible)
        {
            return MvcHtmlString.Empty;
        }

        return htmlHelper.HiddenFor(expression);
    }
}