热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

体验ASP.NETMVC3中的Razor特性

1闲话ASP.NETMVC3 beta不知道不觉MVC3更新了好几次了。。。因为一直

1 闲话ASP.NET MVC 3 beta

不知道不觉MVC3更新了好几次了。。。因为一直在弄Silverlight的开发没有时间关注ASP.NET MVC.之前出preview 的时候就看了园子里的一些文章。

但是总觉得"不咋地",依赖注入早就有一套了,全局拦截器也就那么回事。。好像都没有对开发效率有太大的提升。。。(一己之见.目前正在学习MVC3BEAT的DI)。

除了RAZOR... 

好吧。 现在开始动手吧!

2开工 

2.1目录 

在_ViewStart.cshtml中指定

StartPage.Layout 会在程序启动时,预先加载这个页面。

  1. @{  
  2.     Layout = "~/Views/Shared/_Layout.cshtml";  

2.2实现框架页

_Layout.cshtml中

  1. > 
  2. <html> 
  3. <head> 
  4.     <title>@View.Titletitle> 
  5. <link href="@Url.Content("~/Content/Site.css")" rel="stylesheet" type="text/css" />      
  6. head> 
  7. <body> 
  8. @*模板页*@  
  9. <div> 
  10. <fieldset> 
  11.     <legend>Mainlegend> 
  12.     @RenderBody()  
  13. fieldset> 
  14. <fieldset> 
  15.     <legend>底部footerlegend> 
  16.     @RenderSection("footer" );   
  17. fieldset> 
  18. div>      
  19. body> 
  20. html> 

@RenderBody() 呈现主体。

@RenderSection("footer" ); 呈现部分:如底部的版权。

在Index.cshtml中

  1.  @section footer{   
  2. copyrght@@facingwaller  

2.3显示 view里的变量和显示control里的变量

显示页面里定义的 

显示控制器

control里的定义:  

 

view中的显示

 

2.4其他一些常用写法 

VIEW中 

  1. <fieldset> 
  2.     页面上的变量 use view variable: @@variable=@variable  
  3.     <br /> 
  4.     来自控制器的 use Controller variable:@View.variable  
  5.     <br /> 
  6.     循环嵌套HTML Loops and Nested HTML Sample  
  7.     @foreach (var p in words) {  
  8.         <big>@p ..big> 
  9.     }  
  10.     <br /> 
  11.     使用if else  
  12.     @if (IsTrue) {  
  13.         <b>@@IsTrue is @IsTrueb> 
  14.     } else {  
  15. <b>@@IsTrue is @IsTrueb> 
  16.     }  
  17.     <br /> 
  18.     多行代码  
  19.     @{  
  20.         var number = 1;  
  21.         var num2 = 2;      
  22. }  
  23.     Multi-Token Statements 变量和字符串拼凑的语句 @(number + "number is " + number);  
  24.     <br /> 
  25.     HTML Encoding  
  26.     <br /> 
  27. @*以下没弄懂-望指教*@  
  28.     @if (true) {  
  29.         <text>   
  30.         hi it's razor<br /> 
  31.         follow me ! I'm facingwaller  
  32.         text> 
  33.         <br /> 
  34.        <span>hi it's razor<br /> 
  35.            follow me ! I'm facingwaller span> 
  36.     } else {  
  37.  
  38.     }  
  39.     <br /> 
  40.     Declarative HTML Helpers声明帮助方法  
  41.     @helper WordInText(string text) {  
  42.         foreach (var p in text) {  
  43.         <li>@p li> 
  44.         }  
  45. }  
  46.     调用 @WordInText("ender")   
  47. fieldset> 

最终效果

3激动人心的RAZOR

尝鲜RAZOR这个页面引擎,感觉挺不错。

1 用@ 代替 该死的<% %>显然<,%,>都是非常难敲到的键位。

2 单行的@+变量的方式更加简洁。

3 提供了静态大量的helper方法。 

4 其Chart和grid的辅助方法让图表和表格更加容易生成比之前的contrib开源的那个表格生产类库更加来得人性化。

WebImage帮助创建图像,也包括基本的图像操作方法。这些以后我会继续体验和比较然后和大家。。。  

4 欢迎讨论其他的页面引擎

还有话要说。目前我还没有看过RAZOR的源码也没有体验过其他的(除了webpages)页面引擎。

说的不好的地方请大家帮指出,也欢迎大家说说其他的页面引擎,特别是说说易用性,设计思想,开发效率和性能,让偶开开眼界。

相关源代码下载请点这里

原文链接:http://www.cnblogs.com/facingwaller/archive/2010/12/04/first_time_to_use_razor_in_mvc3.html

【责任编辑:彭凡 TEL:(010)68476606】



推荐阅读
  • 本文介绍了绕过WAF的XSS检测机制的方法,包括确定payload结构、测试和混淆。同时提出了一种构建XSS payload的方法,该payload与安全机制使用的正则表达式不匹配。通过清理用户输入、转义输出、使用文档对象模型(DOM)接收器和源、实施适当的跨域资源共享(CORS)策略和其他安全策略,可以有效阻止XSS漏洞。但是,WAF或自定义过滤器仍然被广泛使用来增加安全性。本文的方法可以绕过这种安全机制,构建与正则表达式不匹配的XSS payload。 ... [详细]
  • 本文介绍了一个免费的asp.net控件,该控件具备数据显示、录入、更新、删除等功能。它比datagrid更易用、更实用,同时具备多种功能,例如属性设置、数据排序、字段类型格式化显示、密码字段支持、图像字段上传和生成缩略图等。此外,它还提供了数据验证、日期选择器、数字选择器等功能,以及防止注入攻击、非本页提交和自动分页技术等安全性和性能优化功能。最后,该控件还支持字段值合计和数据导出功能。总之,该控件功能强大且免费,适用于asp.net开发。 ... [详细]
  • VScode格式化文档换行或不换行的设置方法
    本文介绍了在VScode中设置格式化文档换行或不换行的方法,包括使用插件和修改settings.json文件的内容。详细步骤为:找到settings.json文件,将其中的代码替换为指定的代码。 ... [详细]
  • Nginx使用(server参数配置)
    本文介绍了Nginx的使用,重点讲解了server参数配置,包括端口号、主机名、根目录等内容。同时,还介绍了Nginx的反向代理功能。 ... [详细]
  • 本文详细介绍了Java中vector的使用方法和相关知识,包括vector类的功能、构造方法和使用注意事项。通过使用vector类,可以方便地实现动态数组的功能,并且可以随意插入不同类型的对象,进行查找、插入和删除操作。这篇文章对于需要频繁进行查找、插入和删除操作的情况下,使用vector类是一个很好的选择。 ... [详细]
  • 如何在服务器主机上实现文件共享的方法和工具
    本文介绍了在服务器主机上实现文件共享的方法和工具,包括Linux主机和Windows主机的文件传输方式,Web运维和FTP/SFTP客户端运维两种方式,以及使用WinSCP工具将文件上传至Linux云服务器的操作方法。此外,还介绍了在迁移过程中需要安装迁移Agent并输入目的端服务器所在华为云的AK/SK,以及主机迁移服务会收集的源端服务器信息。 ... [详细]
  • 深度学习中的Vision Transformer (ViT)详解
    本文详细介绍了深度学习中的Vision Transformer (ViT)方法。首先介绍了相关工作和ViT的基本原理,包括图像块嵌入、可学习的嵌入、位置嵌入和Transformer编码器等。接着讨论了ViT的张量维度变化、归纳偏置与混合架构、微调及更高分辨率等方面。最后给出了实验结果和相关代码的链接。本文的研究表明,对于CV任务,直接应用纯Transformer架构于图像块序列是可行的,无需依赖于卷积网络。 ... [详细]
  • 本文介绍了如何使用JSONObiect和Gson相关方法实现json数据与kotlin对象的相互转换。首先解释了JSON的概念和数据格式,然后详细介绍了相关API,包括JSONObject和Gson的使用方法。接着讲解了如何将json格式的字符串转换为kotlin对象或List,以及如何将kotlin对象转换为json字符串。最后提到了使用Map封装json对象的特殊情况。文章还对JSON和XML进行了比较,指出了JSON的优势和缺点。 ... [详细]
  • 本文介绍了互联网思维中的三个段子,涵盖了餐饮行业、淘品牌和创业企业的案例。通过这些案例,探讨了互联网思维的九大分类和十九条法则。其中包括雕爷牛腩餐厅的成功经验,三只松鼠淘品牌的包装策略以及一家创业企业的销售额增长情况。这些案例展示了互联网思维在不同领域的应用和成功之道。 ... [详细]
  • Spring框架《一》简介
    Spring框架《一》1.Spring概述1.1简介1.2Spring模板二、IOC容器和Bean1.IOC和DI简介2.三种通过类型获取bean3.给bean的属性赋值3.1依赖 ... [详细]
  • 如何用Matlab快速画出带有3D渲染效果的复杂曲面
    简要地介绍了一下如何用Matlab快速画出带有3D渲染效果的复杂曲面图,包括三维曲面绘制、光线、材质、着色等等控制,以及如何 ... [详细]
  • 后台自动化测试与持续部署实践
    后台自动化测试与持续部署实践https:mp.weixin.qq.comslqwGUCKZM0AvEw_xh-7BDA后台自动化测试与持续部署实践原创 腾讯程序员 腾讯技术工程 2 ... [详细]
  • #include<iostream>usingnamespacestd;intmain(){HereIseperatemynumberbe ... [详细]
  • Imtryingtousethisforabasicsearchwithpagination:我正在尝试使用此分区进行基本搜索:$construct?AND? ... [详细]
  • 1print过程procprint<data数据集名><选项>;*label指定打印输出标签noobs制定不显示观测序号*by变量名1< ... [详细]
author-avatar
mobiledu2502900255
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有