最小化ASP.NET MVC内联代码(标签肥皂)的最佳实践?

时间:2009-12-21 19:15:57

标签: asp.net-mvc

我是一位经验丰富的ASP.NET WebForm开发人员,正在尝试学习MVC。由于内联代码过程,我对MVC仍然不太兴奋。在某些时候,我无法从所有代码中看到HTML,我必须渲染页面并执行视图源。

我知道你可以换掉视图引擎,并且想知道两件事:

1-是否有一个视图引擎使用的内联代码少于默认视图引擎? (实际上,进行视图引擎比较的资源很有帮助)

2-是否有一个很好的资源来解释为视图编写内联代码的最佳实践?我可能正在编写不必要的代码或执行它。

3- ASP.NET MVC v2 在视图功能方面比以前的版本提供了什么?

2 个答案:

答案 0 :(得分:1)

我一直在使用Spark view engine一段时间,从未回头。虽然它本身并没有减少View上使用的服务器端代码的数量(这是你自己必须做的事情),但它可以使它“融入”周围的HTML,使得标记更容易阅读。这是我正在处理的当前项目的一个示例(类和属性名称已被更改以保护有罪):

<div id="Messages" if="Model.Messages.Count > 0">
    <MessageDetails each="Message message in Model.Messages" />
</div>

你在这里看到的是a)如果列表中有消息(在这种情况下,<div>)和b)渲染的局部视图,则封装Model.Messages标记输出到View (名为“MessageDetails”)列表中的每个项目。等效的Web表单版本将类似于:

<% if (Model.Messages.Count > 0) { %>
    <div id="Messages">
    <% foreach(Message message in Model.Messages) { %>
        <% Html.RenderPartial("Container", message); %>
    <% } %>
    </div>
<% } %>

虽然这并不总是减少执行服务器端操作(例如渲染部分视图)所需的行数,但它会降低View的视觉复杂性并使非服务器端标记更多可维护性。

答案 1 :(得分:0)

使用内置视图的最佳做法是使用HTML帮助程序扩展和部分视图。

就个人而言,我喜欢你被迫将你的UI代码封装到辅助类和方法中,而不是将其隐藏在代码隐藏文件中。