在控制器的动作方法中,ViewData [" ReturnUrl"] = returnUrl的用途是什么

时间:2016-08-10 16:42:58

标签: c# visual-studio-2015 asp.net-core asp.net-core-mvc

当我使用rsync -a provisioner / 身份验证创建ASP.NET Core Web项目时,我注意到VS2015创建了一个包含许多操作方法的Individual User Accounts。这些操作方法中的大多数都包含输入可选参数AccountController,并且在这些方法中我们已经string returnUrl = null,如下面的一个示例所示。

问题

  1. 这些可选输入参数和语句ViewData["ReturnUrl"] = returnUrl;在这些操作方法中的用途是什么? 2.我什么时候应该在动作方法中使用它们以及何时应该避免使用它们?
  2. 获取方法

    ViewData["ReturnUrl"] = returnUrl;

    发布方法

    [HttpGet]
    [AllowAnonymous]
    public IActionResult Login(string returnUrl = null)
    {
        ViewData["ReturnUrl"] = returnUrl;
        return View();
    }
    

3 个答案:

答案 0 :(得分:4)

当您想要将用户返回到他最初想要访问的页面时,您需要将返回的网址传递给您的视图。

您可以使用ViewData或模型的常规属性来执行此操作。

所以你通过了回归,只是因为你不想忘记"用户来自哪里。

答案 1 :(得分:3)

当您访问需要授权的网站时,您需要将用户返回到他们经过身份验证后最初访问的页面。这将保存返回URL,以便可以将其用于将用户重定向回其原始页面(而不是像主页一样的默认页面)。如果您希望用户在登录后始终转到默认页面,则可以将其删除。您需要将默认页面重定向放在适当的位置。

答案 2 :(得分:3)

您可以像这样

解析视图上的returnUrl
<form asp-controller="Account" asp-action="Login" asp-route-returnurl="@viewdata["ReturnUrl"]" method="post" class="form-horizontal">

..... //为了简洁而删除了其余的html

Solution was found Here