那么我的网站本地运行良好,但是当部署到 生产环境 时,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 app,IHostingEnvironment env){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未找到
此外,这项工作在我的本地VisualStudio IIS Express,My Local IIS中,但在我的 生产环境 IIS中不起作用
1 回答
你正在做
return View()
. 如果指定其他视图,则View()不会返回RedirectToActionResult
. 你想在你的else块中return RedirectToAction()
.RE:仍然无效
请参考this document解释需要传递给
RedirectToAction()
的参数如果你
return RedirectToAction('Login')
,你告诉它从你当前控制器上的动作返回结果 .如果这不是所需的行为,则需要提供“登录” .