由于我是ASP.NET MVC的新手,任何人都可以告诉我return RedirectToAction()
和return View()
之间的区别吗?
答案 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)
View
不会发出新请求,只会呈现视图
不改变浏览器地址栏中的URL。RedirectToAction
在浏览器中发出新请求和网址
地址栏由MVC生成的URL更新。Redirect
也会在浏览器的地址中发出新请求和网址
栏已更新,但您必须指定完整的网址。RedirectToRoute
重定向到中定义的指定路由
路线表。在RedirectToAction
和Redirect
之间,最佳做法是使用
RedirectToAction
用于处理您的申请的任何内容
动作/控制器。如果您使用Redirect
并提供网址,那么您就是其中之一
需要在更改路由表时手动修改这些URL。
答案 2 :(得分:0)
作为上述所有答案的补充,如果您使用数据注释使用实施验证,请使用return View()
代替RedirectToAction()
。
验证消息无法使用RedirectToAction,因为它无法获取无效的模型,并且您的验证消息也不会在您的视图中显示。
答案 3 :(得分:0)
here是mvc中渲染视图的最简单说明。