Обновить частичное представление в _Layouts.cshtml - PullRequest
2 голосов
/ 09 февраля 2011

У меня есть следующее частичное представление:

<span>Login Status</span>
@{
    if (ViewBag.UserId > 0)
    {
        @Html.ActionLink("Log Out", "LogOut", "Home", null);
    }
    else {
        @Html.ActionLink("Log In", "Login", "Home", null);
    }
}

Это просто притворная область статуса входа. Теперь идея состоит в том, чтобы это появилось на главной странице моего сайта MVC, чтобы оно отображалось на всех страницах. Вот как я отрисовываю его в файле _Layout.cshtml:

<div id="login">
   @{ Html.RenderPartial("LoginStatus"); }
</div>

То, что я хотел бы иметь, - это когда пользователь нажимает ссылки «Войти» или «Выйти», выполняется действие (для входа / выхода пользователя), а затем обновляется частичное представление - но остальная часть страницы осталась одна.

В настоящий момент, когда я нажимаю на любую из ссылок, сайт переходит на «Домой / Вход» или «Домой / Выход из системы». Я не хочу, чтобы он отображал представление, я бы хотел обновить только частичное представление, независимо от того, на какой странице я нахожусь.

Каков рекомендуемый способ сделать это?

Приветствия. Иак.

Ответы [ 2 ]

1 голос
/ 10 февраля 2011

Вы можете использовать AJAX.Таким образом, вы можете использовать jquery для ненавязчивого AJAXify этих ссылок, подписавшись на событие click и отправив запрос AJAX соответствующему действию контроллера, которое вернет частичное представление и обновит DOM.

0 голосов
/ 10 февраля 2011

Попробуйте метод @Ajax.ActionLink().

...