簡體   English   中英

重定向(url)不重定向

[英]Redirect(url) not redirecting

我在.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

重定向(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

我檢查了這些答案,但無法幫助我:

重定向到returnURL不工作 重定向請求到'ReturnUrl'顯示登錄頁面

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

我可以看到網址需要正確構建。 來自@NKosi的回復https://stackoverflow.com/a/44837491/5770686我相信可以幫助您,也可以使用其他Redirect方法,如RedirectToAction,RedirectToRoute等。( https://docs.microsoft.com/en- us / dotnet / api / system.web.mvc.controller.redirect?view = aspnet-mvc-5.2

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM