渲染EditorTemplates基于身份验证

时间:2010-10-24 17:11:31

标签: asp.net-mvc-2

如果用户登录并且displaytemplates为默认值,或者我是否需要创建自己的Html助手扩展,是否可以呈现editortemplates?

1 个答案:

答案 0 :(得分:1)

您需要一个自定义辅助方法:

public static class HtmlExtensions
{
    public static MvcHtmlString MyHelper<TModel, TValue>(
        this HtmlHelper<TModel> htmlHelper, 
        Expression<Func<TModel, TValue>> expression
    )
    {
        if (htmlHelper.ViewContext.HttpContext.User.Identity.IsAuthenticated)
        {
            return htmlHelper.EditorFor(expression);
        }
        return htmlHelper.DisplayFor(expression);
    }
}

并使用:

<%: Html.MyHelper(x => x.SomeValue) %>