gpt4 book ai didi

c# - MVC - 基于用户角色切换 View

转载 作者:太空狗 更新时间:2023-10-29 23:09:49 24 4
gpt4 key购买 nike

我在我的 MVC 应用程序中有一项要求,即根据用户的角色向用户呈现不同的操作 View 。执行此操作的最佳方法是什么?

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

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);

这是否适合 Action Filter?

最佳答案

Would this be a good fit for an Action Filter?

绝对:

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);
}
}
}
}

或者您甚至可以构建自定义 View 引擎。

关于c# - MVC - 基于用户角色切换 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9842054/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com