Хорошая или плохая идея иметь базовую модель в ASP.NET MVC - PullRequest
2 голосов
/ 31 августа 2009

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

Вместо того, чтобы получать пользователя в каждой модели, есть ли способ, чтобы легко иметь доступ к данным пользователя постоянно? То есть я должен установить базовую модель или иметь какой-нибудь «главный» контроллер, который пропускает пользователя во ViewData?

Любые мысли, или даже лучше, любой код будет принят.

Ответы [ 2 ]

4 голосов
/ 31 августа 2009

Это отличная идея. Я использую MasterModel последовательно во всех моих проектах MVC.

Чтобы это работало, вам нужно создать подкласс для всех ваших моделей представлений, а также строго ввести вашу MasterPage в MasterModel.

public class MasterModel
{
    string UserName { get; set; }
}

public class HomeModel : MasterModel
{
}

public class NewsModel : MasterModel
{
}

<%@ Master Language="C#" Inherits="System.Web.Mvc.ViewMasterPage<MasterModel>" %>

User name: <%= Model.UserName %>
0 голосов
/ 31 августа 2009

Это хорошая идея, если вы не изобретаете велосипед. Довольно много информации, которую люди часто вводят в модели представлений (в частности, здесь, пользователь ASP.NET, но, кажется, что люди также часто дублируют данные маршрута), уже доступно представлению без добавления его в модель. Но для вещей, которые еще не видны, это хорошо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...