0

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

提前致谢!

4

1 回答 1

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);
    }
}
于 2012-05-24T06:18:44.953 回答