.NET MVC是否会给我所需的HTML / CSS / JS分隔符?
我正在与我的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中。