gpt4 book ai didi

asp.net-mvc - 使用不同母版页的相同 View - ASP.NET MVC

转载 作者:行者123 更新时间:2023-12-01 06:13:35 25 4
gpt4 key购买 nike

我是 ASP.net MVC 的新手,我想使用一个 View ,但根据用户角色使用不同的母版页。

目前,如果用户处于 Role1 并且 View2 处于 ,我倾向于使用一个返回 View1 的 Controller >角色 2View1View2 内部包含相同的部分 View 以呈现由两者共享但具有不同母版页的内容。

我想知道这是否是一种好的做法,或者您是否推荐另一种设计。我的解决方案做一些简单的事情似乎有点复杂。也许我错过了什么

谢谢!

最佳答案

你可以有一个函数,它根据用户角色返回主名称,然后编写一个自定义操作过滤器,该过滤器将在操作后执行,并根据当前连接的用户角色设置相应的主页面:

public class MasterChooserAttribute : ActionFilterAttribute
{
public override void OnActionExecuted(ActionExecutedContext filterContext)
{
base.OnActionExecuted(filterContext);
var result = filterContext.Result as ViewResult;
if (result != null)
{
var user = filterContext.HttpContext.User;
result.MasterName = GetMaster(user);
}
}

private string GetMaster(IPrincipal user)
{
// TODO: based on the current user roles return the proper master page
throw new NotImplementedException();
}
}

然后简单地用这个 Action 过滤器装饰你的基本 Controller ,或者如果这是一个 ASP.NET MVC 3 应用程序,只需将它声明为 global filter。 .

关于asp.net-mvc - 使用不同母版页的相同 View - ASP.NET MVC,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5395797/

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