【问题标题】:Redirect(url) not redirecting重定向(url)不重定向
【发布时间】:2019-09-15 17:58:38
【问题描述】:

我在 .Net MVC 中有一个简单的登录屏幕。我在成功登录后使用Redirect() 方法重定向到给定的url,但是Redirect(url) 没有到达任何地方,页面仍然在登录屏幕中。

下面的链接得到returnurl 很好: @Html.ActionLink("Buy","Login","Account",new { returnUrl = Request.RawUrl })

然后在登录屏幕中,returnUrl 显示这个 url: http://localhost:1820/Account/Login?returnUrl=%2FBasket%2FGoToShopCart

Redirect(url) 没有重定向:

[HttpPost]
public ActionResult Login(Login l, string returnurl)
{
      RegisteredCustomer rc = new RegisteredCustomer();
      string url = "";
      Repository r = new Repository();
      var obj = r.GetUser(l);
      if (obj != null)
      {
          Session["UserID"] = obj.RegisterID.ToString();
          url = returnurl;
      }
      else
          url ="/Account/Login";
      return Redirect(url);
}`

我在登录视图中将 url 传递给 HttpPost 方法:

`@using (Html.BeginForm("Login", "Account", new { returnUrl = Request.QueryString["ReturnUrl"] }, FormMethod.Post))
{
        @Html.Hidden("returnUrl", ViewContext.HttpContext.Request.Url.PathAndQuery)
        @Html.AntiForgeryToken()
        @Html.ValidationSummary(true)
        ...
        <input type="submit" value="Enter" />

}`

它也没有重定向这个网址:

http://localhost:1820/Account/Login

我已经检查了这些答案,但无法帮助我:

Redirect to returnURL not working Redirect request to 'ReturnUrl' displays Login Page

【问题讨论】:

    标签: c# url redirect model-view-controller returnurl


    【解决方案1】:

    您可以使用 return RedirectToAction("Login","Account");

    【讨论】:

    • 当然但是,这里指向Redirect 是我需要重定向到给定的returnurl,我不知道它的控制器和操作@Nguyen
    【解决方案2】:

    正如我所见,网址需要正确构建。 @NKosi 在https://stackoverflow.com/a/44837491/5770686 的回答我相信可以帮助你,也可以使用其他重定向方法,如 RedirectToAction、RedirectToRoute 等 (https://docs.microsoft.com/en-us/dotnet/api/system.web.mvc.controller.redirect?view=aspnet-mvc-5.2)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-12-06
      • 2021-03-25
      • 1970-01-01
      • 2011-01-18
      • 2020-08-28
      • 2020-03-11
      相关资源
      最近更新 更多