【发布时间】: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