Ответы пользователя по тегу HTML
  • Как передать данные в Layout из Html.RenderAction?

    Oskar87
    @Oskar87
    Senior software engineer
    Эх молодеж!
    Ну если уж на то пошло, а почему пользователя нельзя передать во вью из контроллера другим способом?
    Создать вьюмодель сделать в ней проперти CurrentUser и туда его положить, а потом вызвать @Model.CurrentUser

    А если мы говорим как сделать правильно, то можно сделать так
    1)Создай классы BaseViewPage BaseViewPagelt;T gt; отнаследуйся от WebViewPage и WebViewPage lt;T gt;
    2)Потом добавь public property User в обе реализации класса BaseViewPage
    3) Сделай сервис для того чтобы вытаскивать текущего пользователя
    (к примеру из сессии берешь его email или id, по нему цепляешь из базы и отдаешь)
    4) Вызови сервис из BaseViewPage и BaseViewPage lt;T gt;
    Создаешь там инстанс сервиса, или инжектишь его туда, как больше нравится.
    Потом достаешь пользователя.
    К примеру так Public User CurrentUser {get{ return AuthServise.GetCurrentUser();}}

    5) подмени во вью конфиге
    lt; pages pageBaseType="System.Web.Mvc.WebViewPage" gt;
    на
    lt; pages pageBaseType="BaseViewPage" gt;

    И будет у тебя в любом вью везде Пользователь текущий, счастье!
    Ответ написан
    Комментировать