Passer returnUrl de ActionLink de vue de Formulaire de Connexion qui redirige revenir à l'affichage des

J'ai lu beaucoup de messages sur returnUrl comme il se rapporte à des formes d'authentification par défaut de [authorize] MyController, mais je n'ai pas lu quoi que ce soit sur un simple passage de la returnUrl où la seule authentification a lieu après l' [HttpPost] avec une connexion ou un formulaire d'inscription et les utilisateurs anonymes.
Dans ce cas, je veux la redirection à venir à partir du lien d'origine et est passé à l'action, où les utilisateurs sont authentifiés via le formulaire d'authentification. Cette redirection devrait prendre à l'utilisateur de retourner à la page affichée après qu'ils 1) cliquez sur s'inscrire ou se connecter ActionLinks puis 2) envoyer le formulaire avec succès. C'est sur un serveur de dev, donc HTTPS n'est pas une exigence de l'ATM.

Voici les éléments sans la syntaxe nécessaire/code pour le passage de returnUrl

_LoginPartial:

<li>@Html.ActionLink("Register", "Register", "Account", routeValues: null}, htmlAttributes: new { id = "registerLink" })</li> //returnUrl???
<li>@Html.ActionLink("Log in", "Login", "Account", routeValues: null, htmlAttributes: new { id = "loginLink" })</li> //returnUrl???

De Vue Login:

@using (Html.BeginForm()){...} //new { returnUrl } ???

Login Obtenir ActionResult:

[AllowAnonymous]
public ActionResult Login(string returnUrl)
{   
    //There is other ways to store the route
    TempData["ReturnUrl"] = returnUrl;
    return View();
}

Login Poste ActionResult:

[HttpPost]
[AllowAnonymous]
[ValidateAntiForgeryToken]
public ActionResult Login(LoginModel model)
{
    if (ModelState.IsValid && WebSecurity.Login(model.UserName, model.Password,     persistCookie: model.RememberMe))
    {
        return RedirectToLocal(TempData["ReturnUrl"].ToString());
    }

    //If we got this far, something failed, redisplay form
    ModelState.AddModelError("", "The user name or password provided is incorrect.");
    return View(model);
}

Solution
Grâce à SlightlyMoist j'ai été en mesure de résoudre le problème. Alors que le code est de petite taille, la capacité et le savoir-faire de ViewContext.RouteData.Values["key"] semble être d'une valeur inestimable de l'OMI. Donc, la seule modification effectuée par SM a été fait à l'intérieur de la ActionLinks de la _LoginPartial vue:

<li>
@Html.ActionLink("Register", "Register", "Account", routeValues: new {@returnUrl = Url.Action(ViewContext.RouteData.Values["action"].ToString(), ViewContext.RouteData.Values["controller"].ToString(), ViewContext.RouteData.Values["id"])}, htmlAttributes: new { id = "registerLink" })
</li>

<li>
@Html.ActionLink("Log in", "Login", "Account", routeValues: new {@returnUrl = Url.Action(ViewContext.RouteData.Values["action"].ToString(), ViewContext.RouteData.Values["controller"].ToString(), ViewContext.RouteData.Values["id"])}, htmlAttributes: new { id = "loginLink" })
</li>

AUSSI
Comme par SM encore une fois, la ViewContext.HttpContext.Request.Url.PathAndQuery fonctionne ainsi:

<li>
@Html.ActionLink("Register", "Register", "Account", routeValues: new {@returnUrl = ViewContext.HttpContext.Request.Url.PathAndQuery},htmlAttributes: new { id = "registerLink" })
</li>
InformationsquelleAutor yardpenalty | 2014-04-02