我在哪里可以找到一些高质量的教程,让我了解MVC视图的解剖结构?

时间:2010-09-13 16:29:30

标签: c# asp.net-mvc asp.net spark-view-engine viewengine

我的背景主要是在Microsoft平台上的桌面应用程序中。我最近在ASP.Net MVC上工作了很多,并完全跳过学习webforms。我发现我在MVC中编写我的观点时遇到的麻烦最多(不是网络人员)。我应该多精通HTML和JavaScript来在MVC中编写好的视图?另外,标准的Webforms视图引擎是我应该使用的,或者我是否可以更轻松地使用Spark视图引擎,这是我的背景?

2 个答案:

答案 0 :(得分:1)

如今,大多数网络工作都需要很好地理解HTML,JavaScript(以及最有可能的jQuery)和CSS。如果您使用ASP.Net MVC w / Spark,默认引擎或其他技术(如PHP)并不重要。最后,浏览器只能理解HTML,JavaScript和CSS,其他的东西只是帮助创建最终输出,但你仍然需要了解你想要生成的内容。

关于视图引擎,如果您正在学习以备将来使用,而不是为了您想尽快投入生产的即时项目,我建议您查看微软即将推出的视图引擎Razor。

http://weblogs.asp.net/scottgu/archive/2010/07/02/introducing-razor.aspx

它是为ASP.Net MVC 3版本构建的,它吸取了Spark,NHaml和默认视图引擎的经验教训。

来自文章:
设计目标

我们在制作原型并评估“Razor”时考虑了几个设计目标:

  • 紧凑,富有表现力和流畅性:剃刀 最小化字符数 和文件中所需的击键, 并实现快速,流畅的编码 流程。不像大多数模板 语法,你不需要 明确地中断你的编码 表示你的服务器块 HTML。解析器非常聪明 从你的代码中推断出来。这个 真正的紧凑和 表达语法干净, 键入快速而有趣。

  • 易于学习:Razor易于学习,使您能够以最少的概念快速提高工作效率。您可以使用所有现有的语言和HTML技能。

  • 不是一种新语言:我们有意识地选择不用Razor创建一种新的命令式语言。相反,我们希望开发人员能够将他们现有的C#/ VB(或其他)语言技能与Razor一起使用,并提供模板标记语法,以使用您选择的语言实现令人敬畏的HTML构建工作流程。

  • 适用于任何文本编辑器:Razor不需要特定的工具,使您可以在任何普通的旧文本编辑器中高效工作(记事本效果很好)。

  • 具有出色的智能感知功能:虽然Razor的设计不需要特定的工具或代码编辑器,但它在Visual Studio中具有很棒的语句完成支持。我们将更新Visual Studio 2010和Visual Web Developer 2010以使其具有完整的编辑器智能感知功能。

  • 单元可测试:新的视图引擎实现将支持单元测试视图的功能(无需控制器或Web服务器,并且可以托管在任何单元测试项目中 - 无需特殊的应用程序域)。

对于ASP.Net MVC 3预览1,请查看http://weblogs.asp.net/scottgu/archive/2010/07/27/introducing-asp-net-mvc-3-preview-1.aspx

答案 1 :(得分:1)

特别是关于View Engines的主题,如果你想在你的视图中引入代码块,那么Razor将是最好的方法。

我想,鉴于你的背景,下一个问题是 - “我怎么知道我是否想在视图中引入代码块?” - 我担心的答案只能给你带来很多痛苦的体验。很多人都写过博客文章,解释混合了标记的代码块的危险,导致通常被称为Tag Soup的噩梦。

所有Razor(以及Webforms)为您做的就是将整个C#或VB.Net语言的强大功能带入视图中,以规定丰富的用法。这就是导致Tag Soup问题的原因。

但似乎仍有顽固分子存在某种错觉,你可以通过使用这种方法长期保持你的观点清洁。如果你单独和永远地处理代码,那么我倾向于同意它是可能的,但只有这样才能让人心情沉寂,压抑的注意力和决心。

但是,如果您希望保留标记的视图,并将代码抽象出来,将“快速修复此处”和“黑客入侵”放在哪里可能不那么诱人,那么我会高度评价建议您跳过以代码为中心的视图引擎并使用Spark。

在直接回答您的问题方面,您可以找到大量从初级到高级的教程。以下是我在博客和视频格式中推荐的一些内容:

无论如何,我希望这足以让你做出明智的决定。

祝你好运!

Rob G