У меня есть простой экран входа в .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" />
} `
Также этот URL не перенаправляет:
http://localhost:1820/Account/Login
Я проверил эти ответы, но не смог мне помочь:
Перенаправление на returnURL не работает
Запрос перенаправления на ReturnUrl отображает страницу входа