您的位置:首页 > 编程语言 > ASP

Asp.Net MVC:return View()、return View("Login")、return Login()、return RedirectToAction("Login") 的区别

2014-12-26 17:35 549 查看
在做登录页面的时候发现的一些情况:

-------------------------------------------------------------------------

public ActionResult Login(){

  return View();

}

public ActionResult Index(){

  if(Sesion["userId"]==null){

    ModelState.AddModelError("", "超时,请重新登录!");

return View("Login");   //只跳转到login的页面,不执行ActionResult Login()

    return Login();       //只跳转到ActionResult Login(),不执行login的页面

    return RedirectToAction(""); //跳转到login页面并且执行ActionResult Login(),但ModelState中的值没有了

  }

  return View();

}

-------------------------------------------------------------------------------------------------------

查了些资料,最后改成这样子,controller和view同时执行,并且ModelState的内容也在:

public ActionResult Login(){

  return View("Login"); //注意,这里有区别

}

public ActionResult Index(){

  if(Sesion["userId"]==null){

    ModelState.AddModelError("", "超时,请重新登录!");

    return Login();       //只跳转到ActionResult Login(),不执行login的页面

    }

  return View();

}

这里涉及到了PRG(Post -> Redirect -> Get)模式
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐