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 – 将样式应用于CheckBoxList中的ListItems
- ASP.NET主页面和内容页面中的表单元素
- asp.net-mvc – 如何在ASP.NET MVC 3应用程序中处理未捕获的
- asp.net – HttpContext.Current.Cache可用于所有会话
- asp.net – ‘System.Web.UI.WebControls.TextBoxMode’不包
- asp.net-mvc-2 – ASP.NET MVC2 Ninject NLog(shared hosti
- 从ASP.NET MVC应用程序中的Amazon SES发送电子邮件
- asp.net-mvc – 从MVC Controller调用Web API来构建并传递模
- asp.net-mvc – Knockout,CKEditorSingle Page App
- azure – 当用户存储在外部身份提供程序服务中时与用户的关
- asp.net-mvc – 到WebGrid或不到WebGrid …什么是
- asp.net-mvc – 由于已知在Cross Site Scripting
- asp.net-mvc – VS2012 ProjectTypeGuids在安装A
- asp.net – IIS 6如何从http://example.com/*重定
- asp.net-core – 实体框架核心 – 相当于IN子句
- asp.net-mvc-4 – 如何在ASP.Net MVC 4中定义特定
- asp.net-mvc-4 – ASP.NET优化 – 捆绑
- 如何指导获取一个经典的asp应用程序在IIS 7.0下工
- asp.net-mvc-5 – OWIN是否调用MVC(ASP.NET MVC)
- iis-7 – 经典ASP站点请求在IIS7中随机挂起
