2023-02-17 437
我一直在搜索所以和谷歌的崩溃用于ASP.NET MVC的各种视图引擎,但尚未发现远远超过View引擎的简单高级描述.
我不一定正在寻找”最好的”或”最快的”,而是一些实际的世界与主要球员的利益/缺点的比较(例如,默认WebFormView,MVCContrib View引擎等)进行各种情况.我认为这在确定是否从默认引擎切换到给定的项目或开发组是有利的.
有没有人遇到这样的比较?
由于似乎没有存在全面的列表,让我们在这里开始一个.如果人们增加了他们的经验,这可能对ASP.NET MVC社区具有很大的价值任何实施IViewEngine(例如VirtualPathProviderViewEngine)都是公平的游戏.只是按字母顺序化新视图引擎(在顶部留下WebFormViewEngine和Razor),并尝试在比较中客观.
system.web.mvc.webormviewengent
设计目标:
用于呈现a的视图引擎
Web表单页面到响应.
优点:
缺点:
达到
在设计简单模板时,
示例:
<%@ Control Inherits="System.Web.Mvc.ViewPage<IEnumerable<Product>>" %>
<% if(model.Any()) { %>
<ul>
<% foreach(var p in model){%>
<li><%=p.Name%></li>
<%}%>
</ul>
<%}else{%>
<p>No products available</p>
<%}%>
system.web.razor
设计目标:
优点:
普遍存在,船舶与ASP.NET MVC
缺点:
符号#1(注意字符串[] ……”):
@{
<h3>Team Members</h3> string[] teamMembers = {"Matt", "Joanne", "Robert"};
foreach (var person in teamMembers)
{
<p>@person</p>
}
}
bellevue
设计目标:
- 尊重HTML作为一流语言,而不是将其视为”只是文本”.
- 不要弄乱我的html!数据绑定代码(Bellevue代码)应与HTML分开.
- 强制模型 – 查看分离
brail
设计目标:
抄波引擎已移植
从单轨局与之合作
Microsoft ASP.NET MVC框架.为了
抄袭介绍,见
在城堡项目上的文档
网站
优点:
之后建模
缺点:
示例:
<html>
<head>
<title>${title}</title>
</head>
<body>
<p>The following items are in the list:</p>
<ul><%for element in list: output "<li>${element}</li>"%></ul>
<p>I hope that you would like Brail</p>
</body>
</html>
hasic
hasic使用vb.net的XML文字而不是像大多数其他视图引擎一样的字符串.
优点:
的编译时间检查
缺点:
示例:
Protected Overrides Function Body() As XElement
Return _
<body>
<h1>Hello, World</h1>
</body>
End Function
ndjango
设计目标:
ndjango是一个实施
django模板语言 f#language .
优点:
nhaml
设计目标:
.NET RAILS HAML View引擎的端口.
来自 haml网站:haml是一种使用的标记语言
干净地,简单地描述
任何Web文件的XHTML,没有
使用内联代码……哈姆避免
需要将XHTML显式编码为
模板,因为它实际上是
XHTML的抽象描述,
有一些代码生成动态
内容.
优点:
缺点:
示例:
@type=IEnumerable<Product>
- if(model.Any())
%ul
- foreach (var p in model)
%li= p.Name
- else
%p No products available
nvelocityviewengine(mvccontrib)
设计目标:
基于的视图引擎
nvelocity 这是一个.NET端口
流行的Java项目
velocity .
优点:
缺点:
示例:
#foreach ($p in $viewdata.Model)
#beforeall
<ul>
#each
<li>$p.Name</li>
#afterall
</ul>
#nodata
<p>No products available</p>
#end
shalptiple
设计目标:
shalptiles是 jstl 的部分端口
与瓷砖相结合
Framework (如英里石1).
优点:
缺点:
示例:
<c:if test="${not fn:empty(Page.Tiles)}">
<p class="note">
<fmt:message key="page.tilesSupport"/>
</p>
</c:if>
spark视图引擎
设计目标:
这个想法是允许HTML到
主导流程和代码以适应
无缝.
优点:
缺点:
示例:
<viewdata products="IEnumerable[[Product]]"/>
<ul if="products.Any()">
<li each="var p in products">${p.Name}</li>
</ul>
<else>
<p>No products available</p>
</else>
<Form style="background-color:olive;">
<Label For="username" />
<TextBox For="username" />
<ValidationMessage For="username" Message="Please type a valid username." />
</Form>
stringtemplate视图引擎mvc
设计目标:
- 轻巧.没有创建页面类.
- 快.模板被写入响应输出流.
- 缓存.模板被缓存,但使用文件系统Watcher来检测
文件更改.- 动态.可以在代码中的飞行中生成模板.
- 灵活.模板可以嵌套在任何级别.
- 符合MVC原则.促进UI和业务的分离
逻辑.所有数据都在前面创建
时间,并传递到模板.
优点:
缺点:
)
翼拍
翼拍是一个用于创建XHTML的内部DSL.它基于F#,包括ASP.NET MVC视图引擎,但也可以仅用于创建XHTML的能力.
优点:
的编译时间检查
以来无缝的可组合性和操作
缺点:
xsltviewengine(mvccontrib)
设计目标:
从熟悉的xslt
中构建视图
优点:
缺点:
我当前的选择是剃刀.它非常干净且易于阅读,并保持视图页面非常易于维护.还有IntelliSense支持这真的很棒. alos,与web帮助者一起使用时,它也非常强大.
提供一个简单的样本:
@Model namespace.model
<!Doctype html>
<html>
<head>
<title>Test Razor</title>
</head>
<body>
<ul class="mainList">
@foreach(var x in ViewData.model)
{
<li>@x.PropertyName</li>
}
</ul>
</body>
和你有它.这非常干净,易于阅读.授予,这是一个简单的例子,但即使在复杂的页面上,表格仍然很容易阅读和理解.
为缺点?到目前为止(我是新的)在使用一些助理的表格中使用一些助手缺乏支持,这是一个有点烦人的CSS类参考.
谢谢
nathj07
我知道这并没有真正回答你的问题,但不同的视图引擎有不同的目的.例如, spark视图引擎,例如,通过试图使一切顺利地摆脱你的”标签汤”的看法和可读.
你最好的选择是看一些实现.如果它看起来有吸引力的解决方案的意图,请尝试一下.您可以在MVC中混合和匹配视图引擎,因此如果您决定不使用特定的引擎,则不应该是一个问题.
以上所述是小编给大家介绍的ASP.NET MVC视图引擎比较,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对77isp云服务器技术网的支持!
原文链接:https://77isp.com/post/34206.html
=========================================
https://77isp.com/ 为 “云服务器技术网” 唯一官方服务平台,请勿相信其他任何渠道。
数据库技术 2022-03-28
网站技术 2022-11-26
网站技术 2023-01-07
网站技术 2022-11-17
Windows相关 2022-02-23
网站技术 2023-01-14
Windows相关 2022-02-16
Windows相关 2022-02-16
Linux相关 2022-02-27
数据库技术 2022-02-20
抠敌 2023年10月23日
嚼餐 2023年10月23日
男忌 2023年10月22日
瓮仆 2023年10月22日
簿偌 2023年10月22日
扫码二维码
获取最新动态