首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MVC -基于用户角色的视图切换

MVC -基于用户角色的视图切换
EN

Stack Overflow用户
提问于 2012-03-23 23:35:06
回答 1查看 2.2K关注 0票数 5

在我的MVC应用程序中,我有一个需求,即根据用户的角色向用户呈现不同的操作视图。做这件事最好的方法是什么?

目前我有以下我不喜欢的代码:

代码语言:javascript
复制
if (HttpContext.User.IsInRole("Admin"))
    return View("Details.Admin", model);
else if (HttpContext.User.IsInRole("Power"))
    return View("Details.Power", model);

//default
return View("Details", model);

这是否适合操作筛选器?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-03-23 23:36:57

这是否适合操作筛选器?

绝对:

代码语言:javascript
复制
public class MyActionFilterAttribute : ActionFilterAttribute
{
    public override void OnActionExecuted(ActionExecutedContext filterContext)
    {
        var result = filterContext.Result as ViewResultBase;
        if (result != null)
        {
            var user = filterContext.HttpContext.User;
            if (user.IsInRole("Admin"))
            {
                result.ViewName = string.Format("{0}.Admin", filterContext.ActionDescriptor.ActionName);
            }
            else if (user.IsInRole("Power"))
            {
                result.ViewName = string.Format("{0}.Power", filterContext.ActionDescriptor.ActionName);
            }
        }
    }
}

或者你甚至可以构建一个定制的视图引擎。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9842054

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档