1

我的背景主要是在 Microsoft 平台上的桌面应用程序。我最近一直在使用 ASP.Net MVC 并且完全跳过了学习网络表单。我发现在 MVC 中写我的观点时遇到了最大的麻烦(不是一个网络人)。我应该对 HTML 和 javascript 有多熟练才能在 MVC 中编写好的视图?另外,我应该使用标准的 Webforms 视图引擎吗,或者考虑到我的背景,我会更轻松地使用 Spark 视图引擎吗?

4

2 回答 2

1

对于当今的大多数 Web 工作,您需要对 HTML、JavaScript(最有可能和 jQuery)和 CSS 有很好的理解。使用带 Spark、默认引擎或其他技术(如 PHP)的 ASP.Net MVC 并不重要。最后,浏览器只能理解 HTML、JavaScript 和 CSS,其他的只是帮助创建最终输出,但您仍然需要了解您想要生成的内容。

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

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

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

来自文章:
设计目标

在我们对“Razor”进行原型设计和评估时,我们有几个设计目标:

  • 紧凑、富有表现力和流畅:Razor 最大限度地减少了文件中所需的字符和击键数量,并实现了快速、流畅的编码工作流程。与大多数模板语法不同,您无需中断编码即可在 HTML 中明确表示服务器块。解析器足够聪明,可以从您的代码中推断出这一点。这实现了一个非常紧凑和富有表现力的语法,它干净、快速且打字有趣。

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

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

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

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

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

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

于 2010-09-13T17:02:08.363 回答
1

特别是关于 View Engines 的主题,如果您希望将代码块引入您的视图,那么 Razor 将是这样做的最佳方式。

我想,鉴于您的背景,下一个问题是——“我怎么知道我是否想在视图中引入代码块?” ——答案恐怕只能带给你一种痛苦的经历。许多人写了博客文章,解释代码块与标记混合的危险,这会导致通常称为标签汤的噩梦。

Razor(以及与此相关的 Webforms)为您所做的一切就是以规定大量使用的方式将整个 C# 或 VB.Net 语言的强大功能带入视图。这就是导致标签汤问题的原因。

但似乎仍有一些顽固分子在某种幻想下,认为您实际上可以通过使用这种方法长期保持您的观点干净。如果您一直在单独编写代码,那么我倾向于同意这是可能的,但只有在专注和决心令人麻木令人沮丧的情况下。

但是,如果您想保留您的标记视图,并将代码抽象到不太容易在此处放置“快速修复”和“在此处破解”的地方,那么我强烈建议您跳过以代码为中心的视图引擎并使用 Spark。

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

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

祝你涉猎好运!

抢G

于 2010-10-16T15:15:21.593 回答