使用备用ASP.NET MVC视图引擎有什么好处?

Rob*_*vey 11 asp.net-mvc viewengine

我看过常见的嫌疑人...... Spark,NHaml等.对于那些对<%%>语法感到不舒服的人来说,它们似乎都是语法糖.还有其他有形的好处吗?在我看来,句法糖并不是改变整个视图引擎的充分理由.

到目前为止发布的原因:

  1. 更容易从不同的平台过渡
  2. 更自然的上下文切换
  3. 更好地分离关注点
  4. 更少的代码行
  5. 更好地抵制跨站点脚本
  6. 更好的XHTML合规性

bzl*_*zlm 8

人们对<% %>语法感到不舒服的原因并不是它包含很多语法盐,而是它使视图以代码为中心,这可能违背了使视图尽可能愚蠢的MVC概念.例如,Spark的目标是" 允许html控制流程并使代码无缝地适应".因此,实际的好处是更容易遵循MVC的精神.

<viewdata products="IEnumerable[[Product]]"/>
<ul if="products.Any()">
  <li each="var p in products">${p.Name}</li>
</ul>
<else>
  <p>No products available</p>
</else>
Run Code Online (Sandbox Code Playgroud)

如果上面只是语法糖,那么ASP.NET MVC本身就是ASP.NET Web Forms之上的语法糖.

  • 赋予糖超过空卡路里的东西将是每个=""和if =""的范围与元素的开始和结束标签相关联的事实.由于你的html格式正确,你的代码也是如此,避免了<%}}%>清道夫狩猎.你看得更远,有更多的功能,但在七行中,这给你一个非常合理的第一印象. (2认同)