我是一位经验丰富的ASP.NET WebForm开发人员,正在尝试学习MVC。由于内联代码过程,我对MVC仍然不太兴奋。在某些时候,我无法从所有代码中看到HTML,我必须渲染页面并执行视图源。
我知道你可以换掉视图引擎,并且想知道两件事:
1-是否有一个视图引擎使用的内联代码少于默认视图引擎? (实际上,进行视图引擎比较的资源很有帮助)
2-是否有一个很好的资源来解释为视图编写内联代码的最佳实践?我可能正在编写不必要的代码或执行它。
3- ASP.NET MVC v2 在视图功能方面比以前的版本提供了什么?
答案 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代码封装到辅助类和方法中,而不是将其隐藏在代码隐藏文件中。