应该查看渲染菜单或母版页

发布于 2024-09-05 11:20:02 字数 230 浏览 1 评论 0原文

我使用 ActiveRecord 开发了自己的自定义用户和角色对象,这些对象不扩展默认的 Asp.Net 提供程序,因此我无法从 HttpContext 获取用户。我可以创建一个自定义 htmlhelper 来呈现菜单,但我的视图应该呈现菜单还是母版页?

如果它是母版页,我如何将当前用户之类的内容传递给自定义 htmlhelper,因为某些菜单项取决于用户角色。

另外,我如何检测我的母版页中正在查看哪个控制器?

I've developed my own custom users and roles objects using ActiveRecord that do NOT extend the default Asp.Net providers and therefore I can't get the user from the HttpContext. I can create a custom htmlhelper to render menus but should my views render the menu or the master page?

If it's the master page how can I pass to the custom htmlhelper things like current user since some menu items depend on the user roles.

Also, how can I detect what controller is being viewed inside my master pages?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

风尘浪孓 2024-09-12 11:20:02

1)如果您的菜单功能应该存在于多个页面上,那么将其放在母版页中是有意义的。如果没有,则正常视图。

2) 一个流行的选择是让所有 ViewModel 继承基视图类,然后母版页使用它。示例:

System.Web.Mvc.ViewMasterPage<ViewBase>
System.Web.Mvc.ViewPage<MyViewModel>

public class MyViewModel : ViewBase { }

3) 您可以从路线数据中提取特定控制器。但是,如果您需要某些控制器的特定功能,我建议您为这些视图使用不同的母版页,而不是尝试使所有视图使用相同的母版页。

1) If your menu functionality is supposed to exist on multiple pages, then it makes sense to put it in the master page. If not, then the normal view.

2) A popular choice is to make all of your ViewModels inherit from a base view class, and then your Master page uses that. Example:

System.Web.Mvc.ViewMasterPage<ViewBase>
System.Web.Mvc.ViewPage<MyViewModel>

public class MyViewModel : ViewBase { }

3) You can pull out the specific controller from the route data. However, if you need specific functionality for certain controllers, I would just suggest using a different master page for those views than trying to make all of your views use the same master page.

揪着可爱 2024-09-12 11:20:02

一般来说,所有 ASP.NET 控件(无论是 WebForms 还是 MVC)都应该控制自己的状态。

在处理导航的情况下,我会说创建一个 .ASCX (部分视图)并将其放置在您的母版页上。让分部视图根据HttpContext来控制它的显示方式。

In general, all ASP.NET controls (whether WebForms or MVC) should control their own state.

In the case of handling navigation, I'd say create a .ASCX (partial view) and place it on your master page. Let the partial view control how it is displayed based on the HttpContext.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文