.NET MVC是否会给我所需的HTML / CSS / JS分隔符?

时间:2020-03-05 18:51:25  来源:igfitidea点击:

我正在与我的ASP.NET开发团队合作,尝试在呈现页面时创建"更好的"(即更干净的)HTML。目前,.NET有一种讨厌的趋势,例如将JavaScript转储到页面中,这是对表单控件的强制性要求,并且在JS不可用时不允许表单工作。在某些情况下,我们正在努力克服这一问题,而不必在开发时间估算中添加明显的块。

在使用Java中的Struts之前,我曾与MVC一起工作过,发现在那种情况下,我能够完全按自己的意愿保留HTML页面。 (此观点基于我通常事先开发的"最佳情况"静态HTML,然后交给Java程序员来填补漏洞。)

效果非常好,我们能够从我见过的CMS生成一些"最佳"网页。 .NET MVC能否给我我所需要的分隔,还是将宝贵的开发时间放在一边进行测试是不明智的做法?

如果.NET MVC不能为我提供对分隔的细粒度控制,那么有关.NET编码实践,库等的任何建议可能会非常有用。

解决方案

回答

根据我们要使用的视图引擎。是的。

但是,我们可以通过查看页面源中是否存在堆栈溢出来轻松地进行检查。它不是禅宗花园,但是很干净。

一些澄清:

页面的呈现是由视图引擎完成的。我们可以使用标准视图引擎或者现有的视图引擎(例如nVelocity或者Brail),就像单轨一样。
http://www.chadmyers.com/Blog/archive/2007/11/28/testing-scottgu-alternate-view-engines-with-asp.net-mvc-nvelocity.aspx

由于视图引擎负责创建HTML,因此结果取决于选择。但是在这方面,大多数视图引擎要比普通的ASP.Net更好。

回答

ASP.NET MVC框架将使我们更加熟悉。因为在MVC框架中没有viewstate等,所以我们不必担心JavaScript会被转储到页面中。我们看到的唯一JavaScript调用将是我们手动添加的。

在大多数情况下,我们可以像在其他框架中一样将HTML / CSS / JS分开。

回答

@Wrestlevania说:

any recommendations for .NET coding
  practices, libraries, etc. which might
  would be really helpful.

我尝试在ASP.Net中进行编码时保持较高的分离度。我发现,如果我避免使用asp控件并尽可能地使用基本html元素,则可以避免ASP.Net倾向于向页面中注入额外的CSS或者JS的任何情况。例如,使用span代替asp:literal,使用button代替asp:button等。

我唯一使用的ASP控件是转发器,该转发器用于创建表。我需要的任何功能都类似于ASP控件,我或者用javascript实现自己,或者使用类似jquery的框架。

回答

Asp.Net MVC将将html / css / js分开,因为它会提供较少的功能,使我们无法分开。

例如,HTML帮助器通常只返回:Html。从那时起,我们可以选择保留所有样式信息,仅使其与类属性相关联。

还可以考虑研究通常使用jQuery之类的库的实践。这是一个很好的示例,说明如何通过基于元素类型,类和id之类的事件对页面加载的元素应用事件处理行为,从而将脚本功能完全保留在js和html中。