【问题标题】:How to Create ASPX Pages in MVC 4如何在 MVC 4 中创建 ASPX 页面
【发布时间】:2013-01-29 18:14:23
【问题描述】:
我曾经使用 ColdFusion 进行过一段时间的开发,但后来离开了 Web 开发领域一段时间。我回来了,现在,并已被聘为中级(就在入门级以上)级别的 Web 开发人员。我的工作场所使用的是 MVC 4,但没有使用 Razor 视图引擎。我购买的两本 MVC 4 书籍(以及那里的大量教程和博客)只讨论了使用 Razor - 我在自学中AM使用,但我需要了解不使用 Razor 引擎时它的工作原理。
在使用 ASPX 视图引擎时,您如何使用它?它是否像普通的 ASPX 页面一样工作,我将 ASP.NET 控件放在页面上,然后使用 C# 中的代码隐藏来引用它们?只是,我没有使用 ASP.NET 控件,而是使用 HtmlHelper 方法?请记住,我不是在询问使用<% %> 而不是<@ 的基本格式,因为大部分内容都在此处介绍:http://haacked.com/archive/2011/01/06/razor-syntax-quick-reference.aspx。我不明白流量将如何通过我的基本 HomeController 路由到那些 ASPX 页面(它只有几个 ActionResult() 方法,没什么大不了的)。
如果需要,我可以详细说明。
【问题讨论】:
标签:
asp.net-mvc
asp.net-mvc-4
webforms-view-engine
【解决方案1】:
无论视图引擎如何,所有 MVC view 页面都遵循相同的生命周期:
- 路由 - 将请求映射到操作方法(使用 URL、查询字符串、会话等请求数据)
- 控制器 - 为匹配的操作方法创建控制器。它填充了所有环境、请求和会话数据
- Action - 调用匹配的 action 方法
- 结果 - 操作方法返回的
ActionResult 被执行。对于视图结果,这意味着:1) 视图引擎找到匹配的视图名称,2) 使用 action 方法返回的任何模型数据实例化匹配的视图,3) 视图由视图引擎处理。
这意味着 WebForms 视图将由 MVC WebForms 视图引擎执行,不是由 ASP.NET WebForms 系统执行。视图引擎将执行一些基本解析,以将模型中的数据添加到视图中(如 <%%> 指定的那样)。
另外,仅供参考,您甚至可以在单个项目中混合视图引擎(需要一些设置)。
【解决方案2】:
Look at
MVC 的精神是摆脱背后的代码,因此将拖放到设计器上并从背后的代码操作控件的旧方法变得有些过时或多余。如果您已经在使用 HTML5 助手.. 我会继续这样做。
这纯粹是个人观点......但我会提出使用 Razor 的理由。
编辑:您将模型传递给视图...模型保存数据。
【解决方案3】:
如果您使用的是 ASP.NET MVC,那么请忘记背后的代码。至于视图引擎,您可以使用 razor 或 aspx 方式,这意味着您可以在视图上使用的语法是 razor 或 aspx。路由不会受到您选择的视图引擎的影响。(无论您选择 razor 视图引擎还是 aspx,它的行为都相同。
并且没有 aspx 视图的行为不像普通的 aspx 网络表单,没有视图状态等背后的代码
Here 是 ASP.NET 和 ASP.NET MVC 的一个很好的比较,Here 是不同视图引擎的比较。