首页 文章

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

提问于
浏览
1

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

2 回答

  • 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和默认视图引擎中吸取了教训 .

    来自文章:
    Design Goals

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

    • 紧凑,富有表现力和流畅性: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

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

    我想,鉴于你的背景,下一个问题将是 - "how do I know if I want to introduce code blocks into the view?" - 我担心的答案只会给你带来很多痛苦和经验 . 很多人都写过博客文章,解释了混合了标记的代码块的危险,导致了一场噩梦,通常被称为Tag Soup .

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

    但似乎在某些幻想下仍有顽固分子,你可以通过使用这种方法长期保持你的观点清洁 . 如果你单独和永远地处理代码,那么我倾向于同意它是可能的,但只有这样才会有心灵 - 令人沮丧的专注和决心 .

    但是,如果您希望保留标记的视图,并将代码抽象出来,将“快速修复此处”和“hack in there”放在哪里可能不那么诱人,那么我强烈建议您跳过以代码为中心的视图引擎并使用Spark .

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

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

    祝你好运!

    Rob G

相关问题