MVC的重定向主要通过RedirectResult和RedirectToRouteResult实现。很显然,这两个对象都是MVC返回对象ActionResult的两个继承,具体原理不赘述。
这两个方法的作用相同,第一个采用的是url的方式,第二个采用的是路由表的方式。
RedirectResult构造方法中的第一个参数url传入要跳转的地址,可采用绝对地址跟相对地址,第二个参数描述是否是暂时重定向即(301重定向和302重定向)。在返回该对象时会将重定向地址以及状态码(即301,302写入响应包头location中)。
301跟302重定向的区别:
302重定向是暂时的重定向,搜索引擎会抓取新的内容而保留旧的网址。因为服务器返回302代码,搜索引擎认为新的网址只是暂时的。
301重定向是永久的重定向,搜索引擎在抓取新内容的同时也将旧的网址替换为重定向之后的网址。
因此这两种重定向体验上没有任何区别,只有在SEO上会有所不同。
- RedirectToRoute( new { controller="Member",action="List"});
另外抽象类ActionResult还定义了RedirectToAction 方法,实际也是调用返回的RedicrectToRoute对象
时间: 2024-11-04 15:38:45