Nev*_*ook 3 webmatrix razor asp.net-mvc-3
新的Razor视图引擎的大部分文档都在WebMatrix和ASP.NET"Web Pages"的上下文中.即使在MSDN库本身,似乎(对我来说)作为大多数Razor文档(带有Razor语法的ASP.NET网页)的根参考页面的文章本质上与ASP.NET网页绑定,并且在标题为"Microsoft WebMatrix"的文档树中的一个分支.
但是,我从其他已经阅读的内容中收集到,Razor语法也可用于ASP.NET MVC 3,它似乎与ASP.NET网页几乎没有关系.
现在我是这个领域的新手,我现在正在WebMatrix学习,所以如果我弄错了一些细节,请纠正我,但我知道我也想开始学习ASP.NET MVC不久的将来,这些区别对于这种转变将是重要的.
所以我正在寻找一个明确的指南,这将使我能够准确理解我所学的哪些部分是Razor语法的一部分,哪些是ASP.NET"Web Pages"的一部分.
另外,我需要澄清WebMatrix和ASP.NET网页之间是否有任何区别.我知道WebMatrix基于"网页",但目前尚不清楚我所学的一些内容是否是WebMatrix的一部分,或者(如我所料)WebMatrix只是围绕"网页"的IDE,没有多少其他的UI添加.
那些人可以在这些方面提供一些清晰度吗?
(顺便说一句,我错过了什么(其他),或者"网页"是他们可能为这个新系统提出的最令人困惑的名字?)
是的,ASP.NET WebPages是一个令人困惑的名称.我们尝试过但无法想出更好的东西.抱歉:)
有关MVC,Razor,WebMatrix和WebPages之间各种交互的真实描述,请阅读David Ebbo的博客文章如何将WebMatrix,Razor,ASP.NET网页和MVC结合在一起.
剃刀语法几乎归结为@符号,几个关键字(例如@helper,@inherits,@section),和剃刀文件的智能分析,以找出代码和标记之间的转换.其他所有内容都是标准的C#代码(ifs和fors),标记或WebPages框架提供的库和实用程序.
现在,Razor和WebPages并没有完全分离,两者之间存在内置的连接和约定,使一切都可以协同工作.例如,@section是一个Razor关键字.Razor解析器将其转换为调用WebPages框架方法的代码DefineSection,以便稍后在布局页面中调用@RenderSection.
在MVC中使用Razor取决于WebPages框架.具体来说,MVC扩展了代表WebPages页面的类,这样的东西RenderSection仍然适用于MVC.唯一的区别是MVC有自己的一套实用程序和库,专为MVC编程范例而设计.例如,不是Href从WebPages 调用方法,而是调用Url.ContentMVC.
WebPages中的大量函数将继续在MVC中工作,尽管可能有更多mvc-ish方法可能需要调用.