3

新 Razor 视图引擎的大部分文档都在 WebMatrix 和 ASP.NET“网页”的上下文中。即使在 MSDN 库本身中,(对我而言)似乎是大多数 Razor 文档(具有 Razor 语法的 ASP.NET 网页)的根参考页面的文章本质上与 ASP.NET 网页相关,并且在文档树中标题为“Microsoft WebMatrix”的分支。

但是,我从阅读的其他内容中收集到,Razor 语法也可用于 ASP.NET MVC 3,这似乎与 ASP.NET 网页几乎没有关系。

现在我是这个领域的新手,我现在正在学习 WebMatrix,所以如果我弄错了一些细节,请纠正我,但我知道我也想开始学习 ASP.NET MVC不久的将来,因此做出这些区分对于这种转变非常重要。

因此,我正在寻找一份权威指南,让我能够准确了解我所学的哪些部分是 Razor 语法的一部分,哪些是 ASP.NET“网页”的一部分。

我还需要澄清 WebMatrix 和 ASP.NET 网页之间是否有任何区别。我了解 WebMatrix 是基于“网页”的,但目前尚不清楚我正在学习的某些内容是否是 WebMatrix 的一部分,或者(我怀疑)WebMatrix 是否只是围绕“网页”的 IDE,与除了 UI 之外,没有什么太多的补充。

请问有人可以在这些领域提供一些说明吗?

(顺便说一句,我是否遗漏了什么(其他),或者“网页”是他们可能为这个新系统想出的最令人困惑的名字?)

4

2 回答 2

6

是的,ASP.NET WebPages 是一个令人困惑的名称。我们试过了,但想不出更好的办法。对不起 :)

有关 MVC、Razor、WebMatrix 和 WebPages 之间的各种交互的非常好的描述,请阅读 David Ebbo 的博客文章WebMatrix、Razor、ASP.NET Web Pages 和 MVC 如何组合在一起

Razor 语法几乎可以归结为@符号、一些关键字(例如@helper@inherits@section),以及对 razor 文件的智能解析,以找出代码和标记之间的转换。其他一切要么是标准 C# 代码(ifs 和fors)、标记,要么是 WebPages 框架提供的库和实用程序。

现在 Razor 和 WebPages 并没有完全分离,两者之间有内置的连接和约定,使一切可以协同工作。例如@section是 Razor 关键字。Razor 解析器将其转换为调用 WebPages 框架方法的代码DefineSection,以便稍后在布局页面中调用@RenderSection

Razor 在 MVC 中的使用取决于 WebPages 框架。具体来说,MVC 扩展了代表 WebPages 中的页面的类,这样类似的东西RenderSection仍然可以在 MVC 中工作。唯一的区别是 MVC 有自己的一组实用程序和库,这些实用程序和库是为 MVC 编程范式设计的。例如,您可以在 MVC中调用,而不是Href从 WebPages 调用方法。Url.Content

来自 WebPages 的大量函数将继续在 MVC 中工作,尽管您可能想要调用更多的 mvc-ish 方法。

于 2011-02-26T00:38:55.260 回答
1

为了扩展 marcind 的解释,Razor 是为网页开发的。MVC 团队认为它也会成为一个很棒的视图引擎。Razor“语法”只有一个版本,这就是 MVC3 依赖于 WebPages dll 的原因。

哦,我认为当他们同时命名“Web Pages”和“WebMatrix”时,他们已经没有想法了。我想知道亚马逊最近是否看到 8 年历史的 Web Matrix 书籍的订单有所增加?

于 2011-02-26T08:05:19.287 回答