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

时间:2011-04-02 04:27:59

标签: asp.net-mvc

由于我是ASP.NET MVC的新手,任何人都可以告诉我return RedirectToAction()return View()之间的区别吗?

4 个答案:

答案 0 :(得分:21)

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

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

一个例子......

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

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

答案 1 :(得分:11)

  1. 返回View不会发出新请求,只会呈现视图 不改变浏览器地址栏中的URL。
  2. 返回RedirectToAction在浏览器中发出新请求和网址 地址栏由MVC生成的URL更新。
  3. 返回Redirect也会在浏览器的地址中发出新请求和网址 栏已更新,但您必须指定完整的网址。
  4. RedirectToRoute重定向到中定义的指定路由 路线表。
  5. RedirectToActionRedirect之间,最佳做法是使用     RedirectToAction用于处理您的申请的任何内容     动作/控制器。如果您使用Redirect并提供网址,那么您就是其中之一     需要在更改路由表时手动修改这些URL。

答案 2 :(得分:0)

作为上述所有答案的补充,如果您使用数据注释使用实施验证,请使用return View()代替RedirectToAction()

验证消息无法使用RedirectToAction,因为它无法获取无效的模型,并且您的验证消息也不会在您的视图中显示。

答案 3 :(得分:0)

here是mvc中渲染视图的最简单说明。