ASP.Net MVC Отображение значения сеанса на главной странице - PullRequest
0 голосов
/ 02 января 2011

Когда я отображаю значение сеанса на главной странице (<%: Session["companyname"].ToString() %>), на странице отображается { CompanyName = TestCompany} следующая информация. Как я могу получить только значение?

Спасибо за вашу помощь!

1 Ответ

5 голосов
/ 02 января 2011

Если вы можете показать код, в котором значение хранится в сеансе, скорее всего, я мог бы помочь. Я хотел бы предложить, однако, что вы можете пересмотреть использование значения из сеанса непосредственно в вашем представлении. На мой взгляд, было бы лучше иметь базовую модель представления, основанную на всех ваших моделях представления, которая имеет свойство CompanyName и любые другие общие свойства, требуемые вашей главной страницей. Таким образом, ваша главная страница может быть строго типизирована для модели базового представления, и вы можете использовать значения из модели. Я успешно использовал этот шаблон в нескольких проектах. Соедините его с базовым контроллером, где общие свойства заполняются для результатов просмотра в OnActionExecuted(), это может быть очень эффективным как для уменьшения дублирования кода, так и для использования магических строк в ваших представлениях.

Модель:

public abstract class CommonViewModel
{
    public string CompanyName { get; set; }
    public string UserDisplayName { get; set; }
    ...
}

Контроллер:

public abstract class BaseController
{
    public override void OnActionExecuted( ActionExecutedContext filterContext )
    {
        if (filterContext.Result is ViewResult)
        {
            var model = filterContext.ViewData.Model as CommonViewModel;
            if (model != null)
            {
                 model.CompanyName = Session["CompanyName"] as string;
                 model.UserDisplayName = Session["UserDisplayName"] as string;
            }
        }
    }
}

Мастер-страница:

<%@ Master Language="C#" Inherits="System.Web.Mvc.ViewMasterPage<Foo.CommonViewModel>" %>
<!-- ... -->
<div>
   <%: Model.CompanyName %>
</div>
<!-- ... -->
<div>
   <%: Model.UserDisplayName %>
</div>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...