ASP.NET MVC Spark视图引擎

13

使用Spark视图引擎不仅能提高ASP.NET MVC项目的开发效率,而且还能够使页面更具可读性和易于维护。相比于默认的视图引擎,Spark视图引擎具有以下优势:

3个回答

24
关于Spark View引擎的一个重要特点是其语法非常类似于HTML语法,这样你的视图将会更加清晰,避免了WebForms View引擎中的“标签汤”。以下是一个例子:

Spark:

<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>

WebForms:

<%var products = (IEnumerable<Product>)ViewData["products"] %>
<% if (products.Any()) %>
<ul>
<% foreach (var p in products) { %>
<li><%=p.Name %></li>
</ul>
<%} }  %>
<% else { %>
      <p>No products available</p>
<% }%>

你能再添加一些示例吗? - Quintin Par
@Quintin-Par,您可以在官方网站上找到更多示例:http://sparkviewengine.com/documentation/expressions - user434917
1
虽然 WebForms 代码可以更简洁(请参考 Razzie 的答案),但特别有启发性的是很难发现编译和逻辑错误。在添加缺少的分号后,输出将为每个产品提供一个 </ul>。Spark 使成功之路更加平滑易行。 - Tom Mayfield

8

它避免了常见的HTML标记混乱。考虑Spark:

<ul>
  <li each='var p in ViewData.Model.Products'>
    ${p.Name}
  </li>  
</ul>

与经典的HTML标签混乱变体相反:
<ul>
  <% foreach(var p in ViewData.Model.Products) { %>
  <li>
    <%= p.Name %>
  </li>
  <% } %>
</ul>

Spark的语法更加简洁。

0

我非常喜欢绑定功能。

http://sparkviewengine.com/documentation/bindings

你可以在绑定中指定某些内容,并在视图中使用漂亮的 XML 标记。

我们为视图中使用的所有 HTML 辅助程序都有绑定,例如: <textbox for=""/> <dropdown for="" items=""/> 等等...


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接