所以我完全接受了ASP.NET的基本版本,可测试性,SoC,HTML控件......这太棒了.然而,对于它来说,我有一个巨大的标记挂起.我知道它来自我对经典ASP的仇恨,当我看到这个时,我不禁觉得自己进入了暮光之城.
我不知道替代方案是什么(我可以使用服务器控件,数据绑定等......?)
你可以做一些事情来帮助清理标记,但我同意它可以得到一些标记 - 汤.
您可以使用扩展方法创建自己的HTML帮助程序来输出数据,这样您就可以隐藏一些if/else逻辑,迭代等
S trongly键入您的视图,这样您就可以ViewData.Model.myProperty
而不是(MyClasst)ViewData["foo"].myProperty
例如,这是我制作RSS-spitter-outer所做的扩展:)
public static string RSSRepeater(this HtmlHelper html, IEnumerable rss) where T : IRSSable { StringBuilder result = new StringBuilder(); if (rss.Count() > 0) { foreach (IRSSable item in rss) { result.Append(" - ").Append(item.GetRSSItem().InnerXml).Append("
"); } } return result.ToString(); }
因此,在我的前端,我所拥有的是<%=Html.RSSRepeater(mydata)%>
更好的.
1)助手减少HTML噪音
2)部分视图分解更大的页面/重用视图代码
3)
如果你的视图包含太多语句,请尝试使用其他渲染引擎,例如Sparkline
4)REFACTOR if
.