redirectToAction()和View()之间的区别

San*_*eev 21 asp.net-mvc

由于我是新来的ASP.NET MVC有谁能够告诉我之间的差异return RedirectToAction()return View()

Nar*_*aen 21

return View() 告诉MVC生成要显示的HTML并将其发送到浏览器.

RedirectToAction()告诉ASP.NET MVC使用浏览器重定向来响应不同的操作而不是呈现HTML.浏览器将收到重定向通知,并对新操作发出另一个请求.

一个例子 ...

假设您正在构建一个表单来收集和保存数据,您的URL看起来就像SomeEntity/Edit/23.在"编辑"操作中,您将return View()使用输入字段呈现表单以收集数据.

对于此示例,假设在成功保存数据时,您希望显示已保存的数据.处理完用户提交的数据后,如果您执行的操作类似于RedirectToAction("Index")Index将显示数据的操作.浏览器将获得HTTP 302(临时重定向)/SomeEntity/Index/23.


Aru*_*age 13

  1. Return View不会发出新请求,只是在不更改浏览器地址栏中的URL的情况下呈现视图.
  2. Return RedirectToAction发出新请求,并使用MVC生成的URL更新浏览器地址栏中的URL.
  3. Return Redirect也会发出新请求,并且浏览器地址栏中的URL会更新,但您必须指定完整的URL.
  4. RedirectToRoute 重定向到路由表中定义的指定路由.

RedirectToAction和之间Redirect,最佳实践是 RedirectToAction用于处理应用程序操作/控制器的任何事情.如果您使用Redirect并提供URL,则需要在更改路由表时手动修改这些URL.