我的站点在本地工作得很好,但是当部署到生产环境时,RedirectToAction会失败并显示一个空白页面。
我已经试过这些Redirect to Action is not working With ASP.NET core了
代码如下:
public ActionResult Login()
{
return View();
}
[HttpPost]
public ActionResult Login(Models.UserViewModel person)
{
var booleanlog = Models.Security.User.login.DoLogin(person);
if (booleanlog!=0) {
...
return View("Index");
}
else {
return View("Login");
}
}
我也已经尝试过这个代码,但是不能工作。
[HttpPost]
public ActionResult Login(Models.UserViewModel person)
{
var booleanlog = Models.Security.User.login.DoLogin(person);
if (booleanlog != 0) {
var serializeSession = JsonConvert.SerializeObject(booleanlog);
HttpContext.Session.Set("Rol", Encoding.ASCII.GetBytes(serializeSession));
return RedirectToAction("Index","Home");
}
else {
return RedirectToAction("Index", "Home");
}
}
有我的路径配置public void (IApplicationBuilder应用程序,IHostingEnvironment环境){ if (env.IsDevelopment()) { app.UseBrowserLink();app.UseDeveloperExceptionPage();} else if(env.IsProduction()) {
app.UseExceptionHandler("/Error");
} else
{
app.UseExceptionHandler("/Home/Error");
}
app.UseStaticFiles();
app.UseSession();
app.UseMvc(routes =>
{
routes.MapRoute(
name: "default",
template: "{controller=Home}/{action=Login}/{id?}");
});
}
然后展示一下这个
重定向至根locahost并显示错误404 not found
此外,这在我本地的IIS中工作,但在我的生产VisualStudio中不起作用
发布于 2018-08-23 09:29:48
您正在执行return View()
。如果指定了不同的视图,则RedirectToActionResult
()不会返回视图。你想在你的else代码块中使用return RedirectToAction()
。
RE:仍然不起作用
请参考解释需要传递到RedirectToAction()
中的参数的this document
如果你使用return RedirectToAction('Login')
,你就是在告诉它返回当前控制器上的操作结果。
如果这不是您想要的行为,您需要提供什么是“登录”。
https://stackoverflow.com/questions/51976367
复制相似问题