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 に答える