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


    在做登录页面的时候发现的一些情况:

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

    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)模式

  • 相关阅读:
    php读取大文件如日志文件
    大型站点高并发架构技术
    Nginx配置文件nginx.conf详细说明文档
    关于PHP高并发抢购系统设计
    Mysql常用的锁机制
    Sping基础
    Reliable Master持续集成环境搭建Centos
    Win7 macaca自动化环境搭建 PC篇
    安卓appium无线调试
    Selenium PageFactory使用
  • 原文地址:https://www.cnblogs.com/lyeo/p/4187270.html
Copyright © 2020-2023  润新知