【问题标题】:What is the purpose of the ASP.Net MVC HotTowel Template?ASP.Net MVC HotTowel 模板的目的是什么?
【发布时间】:2013-05-15 23:20:03
【问题描述】:

我正在启动一个单页应用程序并查看各种模板和项目等,以决定一个作为起点。我使用默认的 microsoft 模板设置了一个新项目,我看到了 mvc 控制器、视图等,就像我对 mvc 应用程序的期望一样。

然后我读到了一些新的社区模板,所以我也想尝试一下。我读了很多关于“热毛巾”的文章。首先,我的 Visual Studio 拒绝向我展示模板。我读过很多其他人遇到这个问题并且没有修复。所以我必须从 John Papa 的网站手动安装 HotTowel 模板。我生成了一个新的启动项目并运行它。看起来不错。我开始查看代码,但现在我摸不着头脑。这是什么?除了带有单个空索引操作的默认控制器之外,这里根本没有 asp.net mvc。没有一个单一的 C# 模型。主模板只有一个剃刀视图!这看起来像是应用程序中的应用程序。它的主要内容甚至安装在另一个与 asp.net 无关的子目录中!!! Asp.net mvc 用于启动第一页,但在那之后,不再有 asp.net mvc,它只是原始的 html 和 js。感觉更像是 asp.net mvc 碍事了!

我是否缺少有关此“HotTowel”模板的某些内容?我安装的是旧版本吗?如果这个模板甚至没有真正使用 asp.net,它有什么了不起的?

【问题讨论】:

    标签: asp.net-mvc-4 hottowel


    【解决方案1】:

    欢迎使用单页应用程序。这就是方法的重点——服务器只负责提供 json 或 xml 格式的数据,通常是通过 ajax。所有与 UI 相关的逻辑都是使用 javascript 在客户端上完成的。

    顺便说一句,有许多客户端框架可以使客户端开发更容易。这个模板所基于的淘汰赛只是其中之一,而不是我个人的最爱。我使用angular 进行所有客户端开发。它比淘汰赛涵盖更多的领域,并且相同的功能通常需要更少的代码。

    另一个有趣的事情是,正确的 SPA 允许将您的开发分成 2 个单独的轨道 - 客户端和服务器端。您可以并行进行开发,特别是您可以使用nodejs 轻松创建模拟服务器,这将为您提供必要的数据,而无需运行 IIS 或处理数据库。

    【讨论】:

    • 但是服务器仍然需要为任何部分视图、选项卡、子屏幕、对话框等提供 html。HotTowel 提供了那些为主页、详细信息等加载的 html 页面我期待那些是 asp.net mvc,这样我就可以使用 C#、razor、htmlhelpers 等来构建我的视图。我知道一旦加载了页面的那一部分,浏览器就会使用 ajax 来获取数据更新。但是这个模板中甚至没有一个例子。由于这声称是一个 asp.net mvc 单页模板,我希望至少能看到一个 web api 调用,但什么都没有!
    • 好吧,静态 html 可以直接由服务器提供,而服务器不必是 IIS 或 Cassini。 nodejs 会做得很好。 ASP.NET 仍然是这幅画的重要组成部分,但在此模型中,它仅限于提供数据 - 没有 html。我们进行开发的方式是,所有客户端开发都是使用 nodejs express 作为服务器完成的——它非常轻量级且易于配置,然后只需重新植入客户端代码即可在真实数据端工作
    【解决方案2】:

    你可能需要看看 Fluent Knockout Helpers https://github.com/johnculviner/FluentKnockoutHelpers

    它生成带有强类型剃须刀视图代码的敲除代码,通过数据注释进行验证等等。这是 DurandalJS、Knockout 和 ASP.net MVC 的绝佳示例。

    【讨论】:

      猜你喜欢
      • 2011-04-13
      • 2012-05-27
      • 1970-01-01
      • 2010-09-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多