asp.net-mvc – 如何避免使用MVC的标签汤?
我正在阅读这个我的追求,以证明MVC对非mvc像常规老php(不使用MVC,即使经典的asp可以使用,虽然痛苦):
http://www.codinghorror.com/blog/2008/07/web-development-as-tag-soup.html 我找不到答案.我觉得拿标签汤是不可避免的.是的,我知道MVC分离了模型和控制器,但是当你看到这一切,一切都变得可怕.我可以读取发布的HTML,就像标签汤一样好或更好. 我不会使用单元测试,所以这不是一个重要的优势.我不知道我怎么能避免一个丑陋的观点,现在关于我如何得到它枯燥的mvc或只是发布html. 我使用所有奇怪的编码(而且是代码),比使用response.write“< table>”更容易维护视图. 例如:Dealing with ASP.NET MVC “tag soup” Arnis的答案(对他或任何其他人没有任何的攻击),修正了这个问题中的可怕代码,但对我来说,看起来还不错,至少不是我期望的.对我来说,这些尖括号可能也是<%%>或<?php?>. 我喜欢像codeigniter这样的东西,它真的是我看到的最干净的,但它仍然不是我期望的.我想我希望有一些魔术存在于MVC中,使得一切都变得美丽.显然,除非真的真的很小心,否则与传统的asp相比,没有什么好处,因为它与视图相关. 这主要是关于这个观点.不是哪种语言对于什么或谁的模板引擎是最大的(他们都具有相同的标记混合倾向)更好. 相信我.我想让MVC和我的共同开发人员一起工作,所以我并没有把它视为一个典范.我不能让他们同意一些事情,只因为每个人都在做这样的事情. 感谢任何意见.我必须能够证明这些东西,而在理解MVC和我所得到的东西的同时,这个观点使得很多事情似乎是浪费时间. 编辑:一切似乎都面向特定的框架而不是计划.我看到一些洞察力,但最终似乎除了纪律之外,没有办法.感谢大家的答案. 解决方法
看看使用MVC 3中包含的
Razor视图引擎.还要尽量把所有的逻辑保存在Controller类中,并根据View中显示的内容构建一个Model.
>剃刀是避免标签汤的一个明显的方法,因为不需要任何<%和%>标签 – 简单的一个@在你的代码和视图引擎之前,C#结束和HTML开始的地方. <span class="name">@Model.Name</span> 甚至循环和if语句仍然看起来性感的.cshtml文件与Razor和魔术@字符. @if(shouldDisplayDiv) { <div id="mydiv">Div is displayed!</div> } @foreach(User user in Model.Friends) { <a href="@user.Url"><img src="@user.ImageUrl" title="@user.Name" /></a> } 默认情况下,剃刀还会为您处理HTML编码,因此您的视图不会充满Html.Encode调用. (注意:如果需要输出HTML,可以使用Html.Raw帮助器方法). <div class="specialdiv">@Html.SomeMethod(Model,"String",5)</div> >客户端MVC是另一种选择,如果您正在开发AJAX重的Web应用程序,则有强烈的建议.遵循控制器中的逻辑,您将使用客户端MVC框架(如Backbone.js)以整洁的方式对HTML进行模板化,并使用jQuery .ajax()与控制器进行通话.分离您的表现层是一个很好的做法,留下一些美丽的视图标记! 我坚持这些小指导,它对我而言就像一个魅力.很好,干净的HTML标记与偶尔的@字符.很容易维护(至少视图是!). 编辑:请注意,所有这些要点都包含在ASP.NET MVC 3中,并且都是微软所关心的所有“最佳实践”.没有必要安装任何额外的框架,插件或插件来遵守这些准则. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net-mvc – 如何调试在Azure中部署的ASPNET核心MVC应用
- asp.net – 从MSDN获取我需要的信息的最快方法是什么?
- asp.net-mvc – 支持URL中任何位置的catch-all参数的Asp.ne
- asp.net-mvc – RazorEngine:不能使用Html.Raw
- asp.net-web-api – 使用带有ASP.Net标识的Autofac将Applic
- asp.net-mvc – 如何在ASP.NET MVC中使用querystring路由UR
- 这两种方法有什么区别?
- asp.net-mvc-3 – 在同一父视图上多次使用一个部分视图
- ASP.NET MVC ViewModel模式
- asp.net-mvc – asp.net MVC antiorgerytoken异常RedirectT
- asp.net-mvc – 使用ASP.NET Identity 2.0 UserM
- Asp.Net Repeater ItemCommand dataitem始终为nu
- 一个ASP.NET应用程序(意外)在多个应用程序域或频
- MS Chart与ASP.NET图表类型“列”不显示轴x标签,
- asp.net-mvc-2 – 在IIS 7.5上启用html PUT方法
- asp.net-identity – AspNetCore – 使用Google身
- asp.net-mvc-4 – IEDriverServer在使用模拟时引
- 如何确定ASP.NET应用程序域的生命周期
- ASP.NET读取XML文件4种方法分析
- asp.net-mvc-3 – ASP.MVC 3 Razor在Html.Partia