C# 如何使用字符串重定向到操作
我是MVC的新手,因此非常感谢您在以下方面的帮助 我有一个用于登录的AuthController,如果有返回url,我想返回到该url。它似乎在当前控制器(Auth)中查找returnUrl(/App/Trips),但是如果我指定了控制器,它就可以正常工作 关于为什么RedirectToAction(returnUrl)不起作用,而RedirectToAction(“Trips”,“App”)起作用,有什么想法吗 我想知道它是否与映射有关?这就是我所拥有的: Startup.cs中的映射C# 如何使用字符串重定向到操作,c#,model-view-controller,C#,Model View Controller,我是MVC的新手,因此非常感谢您在以下方面的帮助 我有一个用于登录的AuthController,如果有返回url,我想返回到该url。它似乎在当前控制器(Auth)中查找returnUrl(/App/Trips),但是如果我指定了控制器,它就可以正常工作 关于为什么RedirectToAction(returnUrl)不起作用,而RedirectToAction(“Trips”,“App”)起作用,有什么想法吗 我想知道它是否与映射有关?这就是我所拥有的: Startup.cs中的映射 con
config.MapRoute(
name: "Default",
template: "{controller}/{action}/{id?}",
defaults: new { controller = "App", action = "Index" }
);
AuthController.cs
[HttpPost]
public async Task<ActionResult> Login(LoginViewModel vm, string returnUrl)
{
if(ModelState.IsValid)
{
var signInResult = await _signInManager.PasswordSignInAsync(vm.Username, vm.Password, true, false);
if (signInResult.Succeeded)
{
if(string.IsNullOrWhiteSpace(returnUrl))
{
return RedirectToAction("Trips", "App");
}
else
{
//return RedirectToAction(returnUrl); // Doesn't work - tries to find /App/trips under /Auth
return RedirectToAction("Trips", "App"); // Works! goes straight to /App/trips
}
}
else
{
ModelState.AddModelError("", "Username or Password is incorrect");
}
}
return View();
}
一切如期进行
失败时
return RedirectToAction(returnUrl);
页面未找到错误在
重定向到操作
中,我们需要将控制器名称和操作名称作为参数传递
而重定向()
只需要Url
你所需要的就是做以下事情
return Redirect(returnUrl);
您的参数不是您所期望的
%2F
是/
的URL编码版本,您试图将用户重定向到/Auth/%2FApp%2Ftrips
而不是/Auth//App/Trips
return Redirect(returnUrl);