Razor与ASPX语法的比较

时间:2012-03-14 09:54:59

标签: asp.net asp.net-mvc-3 syntax razor

最近我进入了MVC3和Razor,并阅读了几篇关于这些主题的文章,以便更好地理解这个概念。

我一直在阅读Scott Guthrie's Blog Post,其中提供了以下两个例子。第一个是ASPX语法,第二个是Razor语法:

enter image description here

enter image description here

这很好,但作为ASPX和Razor的公平比较,我有点困惑。

我从未见过像这样的ASPX语法的任何工作示例。自ASP.NET发布以来,开发人员肯定使用过Repeater控件等?自从经典ASP以来,我没有看过类似的语法。

我一直认为将编程代码与标记文件内联,而不是文件背后的代码是不好的做法。

这样的ASP.NET ASPX开发人员代码是什么?

4 个答案:

答案 0 :(得分:11)

我认为你肯定会感到困惑。你的第一个例子不是传统的asp.net。这是MVC渲染引擎用于使用预剃刀的原因(MVC 1& MVC 2 - 我相信它被称为WebForms视图引擎)。

我非常确定你不能在传统的ASP.Net页面中使用foreach。(Veli的评论纠正了我)

使用MVC 3,您可以选择使用Razor视图引擎,正如您在示例中看到的那样,它更具可读性。当然,使用MVC 3,您仍然可以选择以其他方式执行此操作,这是您在创建初始项目时选择的选项。

You can read more about the differences here

答案 1 :(得分:6)

  

这样的ASP.NET ASPX开发人员代码是什么?

我对此表示怀疑。经典WebForms开发人员使用服务器端控件,如转发器。

另一方面,ASP.NET MVC开发人员非常使用这种语法。好吧,实际上你可以在ASP.NET MVC中使用显示模板,这可以避免你编写丑陋的foreach循环。

答案 2 :(得分:0)

  

我一直认为将编程代码与标记文件内联,而不是文件背后的代码是不好的做法。

对于使用MVVM架构的C#WinForm / WPF开发人员来说,这是正确的。但是,我认为将编程代码内联在ASP.NET MVC中仍然是一种很好的做法。

答案 3 :(得分:-1)

不要混淆编程代码和代码来显示属性。将编程代码放在标记文件中是不好的做法。但是,您显示的代码是用于生成标记的代码。

MVC应被视为普通的MVC框架,所有逻辑代码都应该在Controller中。