Параметр MVC Shared Layout для выхода из системы - PullRequest
0 голосов
/ 21 ноября 2018

Я использую общий макет и пытаюсь передать текущее местоположение в метод выхода, но я не уверен, как это сделать.Я пробовал: Request.Url.OriginalString, Request.Url.Scheme и в методе выхода из системы тип параметра я поместил тип параметра в виде строки, но это не работает.Кто-нибудь есть идеи?

Кнопка выхода из системы на моей странице макета

<a onclick="location.href = '@Url.Action("Logoff", "Account", "Request.Url.Scheme")'"><span class="logOffSpan">Sign Out</span

public ActionResult LogOff(string url)
    {
        var local = Convert.ToBoolean(ConfigurationManager.AppSettings["local"]);
        if (local)
        {
            FormsAuthentication.SignOut();
        }
        else
        {
            CasAuthentication.SingleSignOut();
        }

        Session.Clear();
        return to Redirect("Some Method","Some Controller");//I want the user to just return to whatever page they were just on when they clicked log off
    }

1 Ответ

0 голосов
/ 21 ноября 2018

Вы можете использовать Request.Url.AbsoluteUri, чтобы получить абсолютный URL текущей страницы.

Затем вы можете использовать эту перегрузку метода @Url.Action, который принимает объект RouteValueDictionary в качестве третьего параметра для построения маршрута.params / querystrings.

public virtual string Action (string actionName, 
                              string controllerName, 
                              RouteValueDictionary routeValues);

Таким образом, ваш код представления будет

<a href="@Url.Action("Logoff", "Account", new { url = Request.Url.AbsoluteUri })">
    <span class="logOffSpan">Sign Out</span>
</a>

В основном это сгенерирует тег anhcor со значением атрибута href, установленным в /Account/Logogg?url={yourCurrentPageUrl}, где {yourCurrentPageUrl} будет заменен на URL вашей текущей страницы.

Теперь в вашем методе действия вы можете использовать метод Redirect с этим абсолютным значением URL, которое будет доступно в вашем параметре url.

public ActionResult LogOff(string url)
{
    // Your existing logic

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