我有一个请求的页面,如
/Bundler/Index?bid=153981866a37428a91ac870fa5cb169e
我决定重定向到
/Account/Login
页面,如果用户未登录。但是,我喜欢这样,一旦用户登录,他们就会被重定向回该页面。
我试过从ASP.NET MVC模板中学习Login
函数(我拒绝调用函数"方法!"它让我想起Java),我相信签名中显示的参数returnUrl
//
// GET: /Account/Login
[AllowAnonymous]
public ActionResult Login(string returnUrl)
{
ViewBag.ReturnUrl = returnUrl;
return View();
}
//
// POST: /Account/Login
[HttpPost]
[AllowAnonymous]
[ValidateAntiForgeryToken]
public async Task<ActionResult> Login(LoginViewModel model, string returnUrl)
{
if (!ModelState.IsValid)
{
return View(model);
}
// This doesn't count login failures towards account lockout
// To enable password failures to trigger account lockout, change to shouldLockout: true
var result = await SignInManager.PasswordSignInAsync(model.Email, model.Password, model.RememberMe, shouldLockout: false);
switch (result)
{
case SignInStatus.Success:
return RedirectToLocal(returnUrl);
case SignInStatus.LockedOut:
return View("Lockout");
case SignInStatus.RequiresVerification:
return RedirectToAction("SendCode", new { ReturnUrl = returnUrl, RememberMe = model.RememberMe });
case SignInStatus.Failure:
default:
ModelState.AddModelError("", "Invalid login attempt.");
return View(model);
}
}
是用户成功登录后将被定向到的网址。但是,我不确定如何传递returnUrl
的值。
在/Account/Login
页面
表格
<form action="/Account/Login" class="form-horizontal" method="post" role="form">
看起来不包含与参数returnUrl
对应的任何输入,因为没有该名称的参数。
那么,我该怎么称呼,例如,
Login("/Bundler/Index?bid=153981866a37428a91ac870fa5cb169e")
??