抛弃NVelocity,来玩玩Razor

对于内容型,不易变动的东西我们都希望给它来个静态化,还有种情况就是比如新浪云不支持.net,为了能跑起我们的网站,只能放些静态页面上面,外加jsonp来实现交互,我们知道.net中有很多模板引擎,但都不是原装的,所以基本都没有代码提示,用起来比较不爽,自razor出来后,私活中也抛弃了原先使用的NVelocity,而采用原装的razor。

好了,我们先看看怎么玩,首先我们去codeplex上下两个dll。http://razorengine.codeplex.com/

我想razor语法,大家都已经滚瓜烂熟了,不过我快一年都没接触mvc了,也忘了差不多了,就简单介绍一些吧~~~

一般来说,只要razor支持四样特性,80%的功能都可以完成。

一:简单的占位符替换

由于太简单了,就不花力气从cshtml文件中读取了,而用字符串替代。

怎么样,简单的占位符替换是不是很简单,比那些{0},{1}是不是更有语意化一些~

二:能实现的if,foreach等流程控制语句

先看看在模板中怎么玩,最最关键的是有代码提示,完完全全是我们熟悉的C#语法

<!DOCTYPE html>  

<html lang="en">  

<head>
    <meta charset="utf-8" />
    @* 看看if语句怎么玩 *@
    @if (DateTime.Now.Hour == 23)
    {
        <title>你好,现在是午夜</title>
    }
    else
    {
        <title>现在时间是:@DateTime.Now.ToString()</title>
    }
</head>  

<body>
    <ul>
        @* 看看foreach语句怎么玩 *@
        @foreach (var item in @Model.StudentList)
        {
            <li>@item.Name</li>
        }
    </ul>
</body>
</html>

再看看后台C#代码

class Program
    {
        static void Main(string[] args)
        {
            string path1 = Environment.CurrentDirectory + "../../../index.cshtml";  

            var index = System.IO.File.ReadAllText(path1, Encoding.GetEncoding("GBK"));  

            var list = new List<Student>()
            {
                 new Student(){ Name="张三" },
                 new Student(){ Name="李四" },
                 new Student(){ Name="王五" },
            };  

            var result = Razor.Parse(index, new { StudentList = list });  

        }
    }  

    public class Student
    {
        public string Name { get; set; }
    }

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索c#
, 简单
, 语句
, student
, razor
, name
, nvelocity模板引擎
, nvelocity 
, nvelocity
Razor模板引擎
nvelocity razor、nvelocity、nvelocity模板引擎、nvelocity 语法、nvelocity for循环,以便于您获取更多的相关知识。

时间: 2024-09-08 22:46:51

抛弃NVelocity,来玩玩Razor的相关文章

.NET RazorEngine Razor知识集合 Razor也可以这样玩

mvc Razor除了在视图上解析外,一样可以这样用. 在有些项目需求上或许需要根据模板生产静态页面,那么你一样可以用Razor语法去直接解析你的页面从而把解析的页面生成静态页,首先介绍下RazorEngine,在nuget上可以直接引用到项目上,这个东西通俗的来讲就是可以在任何地方解析razor语法,个人觉得要比 NVelocity灵活好用很多.在codeplex上有介绍,现在好像搬到Github上了,链接http://razorengine.codeplex.com/,最新的版本在Githu

一起谈.NET技术,NVelocity for ASP.NET MVC

在我的这篇博文中,有这么一段话:"我一直在想,有没有办法可以单独限制View中的代码的访问权限,类似于trust level,只是这个trust level是用来限制模板中的代码.".有读者johngeng问,为什么要用trust level来锁住view,他不是很理解.我的本意是,希望在view中,开发人员只能写某一些特定功能的代码,调用某一些特定开放的API,对于大部分安全级比较高的代码,比如读写文件等API或类库,不允许在view当中使用.这对于我们将模板开放出来,在线提供给我们

NVelocity for AS“.NET研究”P.NET MVC

在我的这篇博文中,有这么一段话:"我一直在想,有没有办法可以单独限制View中的代码的访问权限,类似于trust level,只是这个trust level是用来限制模板中的代码.".有读者johngeng问,为什么要用trust level来锁住view,他不是很理解.我的本意是,希望在view中,开发人员只能写某一些特定功能的代码,调用某一些特定开放的API,对于大部分安全级比较高的代码,比如读写文件等API或类库,不允许在view当中使用.这对于我们将模板开放出来,在线提供给我们

NVelocity for ASP.NET MVC

在我的这篇博文中,有这么一段话:"我一直在想,有没有办法可以单独限制View中的代码的访问权限,类似于trust level,只是这个trust level是用来限制模板中的代码.".有读者johngeng问,为什么要用trust level来锁住view,他不是很理解.我的本意是,希望在view中,开发人员只能写某一些特定功能的代码,调用某一些特定开放的API,对于大部分安全级比较高的代码,比如读写文件等API或类库,不允许在view当中使用.这对于我们将模板开放出来,在线提供给我们

Razor Templating Engine

       最近遇到html模板解析,我完全可以用MS的T4模板或者是StringTemplate等其他的模板来做,但是出于尝试和对Razor语发的感兴趣,便翻了翻Razor模板的资料,其CodePlex主页http://razorengine.codeplex.com/.       下面讲的都是一些其主页上面的例子,所以请大家别拍砖.别后面想到有些实际意义的例子在写个具体的运用例子吧. 代码 public static class Razor  {      public static s

是时候抛弃Eclipse转向IntelliJ了

2013年Google I/O大会,推出了新的Android集成IDE"Android Studio",最大的转变就是从Eclipse切换到了IntelliJ IDEA. Google终于抛弃了Eclipse了 IDE 是个大坑,不是谁想做就能做的,关键问题是做了也赚不了大钱.Google才不会吃力不讨好,搞Chrome可以给搜索带流量,搞Android能打击对手苹果,搞IDE能干啥?所以,Google需要只是一个集成的傻瓜包而已.让只有一个月Java基础的人,也可以直接下载了这一个傻

H5即将被抛弃吗?

  不断寻找新的替代技术,H5即将被抛弃? 昨天Social Talent分享了一篇<噹!噹!噹,H5警钟响起,该怎么办?>似乎拉起了H5危机的警笛. W公司创始人李3水老师表示"W正式不做任何的H5了,要成为一家新型的营销机构", Epub360也说要用技术实现创意....毋庸置疑,H5在这上半年的爆发,让很多广告.传播公司纷纷将其作为重要的营销武器. 而我们总有个习惯,就是一个新的技术或平台出现,就会将其做得很(yong)深(lan),然后发现没有可利用价值了,就担心这

Asp.net mvc简单实现基于Razor的分页控件

最近在写一些web应用了解了一下asp.net mvc发现的确好用,所以直接就干上了.不过在使用asp.net mvc的Razor模板的情况并不向传统webform那样可以使用控件.但从Razor的功能上已经具备相关代替的功能,只是从Razor角度来说不是 我们平常说的控件而是子模板.由于Razor可以根据自己需求把功能拆分到子模板中,然后通过RenderPage方法输出.从设计的手段上来看完全可以 把分页控件封装成一个子的cshtml,在需要的时候引用上就是了. 作为一个控件的设计其最重要的环

为什么要抛弃HTML

"为什么要抛弃HTML?"这个问题如果展开说又臭又长,我尽量简单吧: HTML发展到今天存在三个主要缺点: 1.太简单.不能适应现在越多的网络设备和应用的需要.比如手机.PDA.信息家电都不能直接显示HTML. 2.太庞大.由于HTML代码不规范.臃肿,浏览器需要足够智能和庞大才能够正确显示HTML.显然在你的PDA上装一个IE6是不可能的.空间不够,运算也跟不上. 3.数据与表现混杂.这样你的页面要改变显示,就必须重新制作HTML.对不同的网络设备显示同样的数据都需要制作不同的HTM