Должен просматривать меню рендера или главные страницы - PullRequest
0 голосов
/ 11 июня 2010

Я разработал свои собственные пользовательские объекты пользователей и ролей, используя ActiveRecord, которые НЕ расширяют стандартных поставщиков Asp.Net, и поэтому я не могу получить пользователя из HttpContext.Я могу создать собственный htmlhelper для отображения меню, но должны ли мои представления отображать меню или главную страницу?

Если это главная страница, как я могу передать пользовательскому htmlhelper такие вещи, как текущий пользователь, поскольку некоторые пункты меню зависят от ролей пользователя.

Кроме того, как определить, какой контроллер просматриваетсявнутри моих главных страниц?

Ответы [ 2 ]

2 голосов
/ 11 июня 2010

1) Если предполагается, что ваша функциональность меню существует на нескольких страницах, то имеет смысл поместить ее на главную страницу. Если нет, то нормальный вид.

2) Популярный выбор - сделать так, чтобы все ваши ViewModels наследовали от базового класса представления, а затем ваша мастер-страница использует это. Пример:

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

public class MyViewModel : ViewBase { }

3) Вы можете извлечь конкретный контроллер из данных маршрута. Однако, если вам нужны определенные функции для определенных контроллеров, я бы просто предложил использовать другую главную страницу для этих представлений, чем пытаться заставить все ваши представления использовать одну и ту же главную страницу.

1 голос
/ 11 июня 2010

Как правило, все элементы управления ASP.NET (будь то WebForms или MVC) должны контролировать свое собственное состояние.

В случае обработки навигации я бы сказал, создать .ASCX (частичное представление) и поместитьэто на вашей главной странице.Позвольте частичному представлению управлять тем, как оно отображается на основе HttpContext.

...