zoukankan      html  css  js  c++  java
  • MVC3 Razor模板引擎

    一、Razor基础                                                                                                         

      1、单行代码书写

        @代码

      2、多行代码书写

        @{    //@加个大括号就可以在里面写C#代码了。

          C#代码第一行

          C#代码第二行

         }  

      3、Razor模板引擎会自动判别代码块,但是当代码存在二义性的时候,可以用小括号澄清

    @{
        string name = "张三";   
     }
    // @name你好   报错当前上下文中不存在名称"name你好"*@
    @(name)你好

      再给一个例子,就是调用泛型方法的时候,尖括号会导致Razor转回标记,这个时候也可以用小括号澄清:

    @(Html.SomeMethod<Type>())

      对于邮件名而言,Razor采用了一个简单的算法来判别,可以适应大多数情况,当出现Razor判别不出的时候,可以用两个@号,@@来强制输出@号。

      4、HTML编码

      默认输出的内容都是经过HTML编码的,这对防止xss攻击有一定作用,但是如果我想将一段代码,就比如javascript代码输出到前台,这时候要用

      @Html.Raw(content)  来保证内容不被编码  

    @{
        string message = "<script>alert('你好!');</script>";   
     }
     <span>@message</span>              //实际输出都浏览器的源码 <span>&lt;script&gt;alert(&#39;你好!&#39;);&lt;/script&gt;</span>
    
     <span>@Html.Raw(@message)</span>   //实际输出到浏览器的源码 <script>alert('你好!');</script>

       5、混合代码与纯文本

        如果想在代码块里向浏览器输出一段内容,这时候就要用到

        @:想输出的文本    //单行

        <text>想输出的文本</text>  //可以写成多行

        而且<text></text>还可以不写在@{}代码块了,但是@:必须写在代码块了,推荐使用<text></text>

        @{

            var i = 1;

            @:@i;  //用于输出变量

         }

      6、MVC调用后台方法

       controller代码:

     
    public class HomeController : Controller
        {
            public ActionResult Index()
            {
                ViewData["kk"] = "长江啊长江,你特别的长!";
                return View("list");
            }
            public static string GetName()
            {
                return "刘德华";
            } 
         public string GetName1()
            {
                return "张学友";
            }
    }
     

       View代码:

    复制代码
      @MvcStart.Controllers.HomeController.GetName();  //静态方法的调用

    @{                              //非静态方法的调用       var con = new MvcStart.Controllers.HomeController();   var name1 = con.GetName1(); } @name1

    复制代码

       注意,上面是静态的方法,静态的代码最简单,直接@写上命名空间等等就可以了。而静态方法只能写成多行,通过new一个对象来引用。

      @Url.Action("index")  此方法用于返回一个Action路径,当需要Action路径的时候可以用到,比如javascript的src是由程序生成的等等。

  • 相关阅读:
    在Centos 7下编译openwrt+njit-client
    开博随笔
    Chapter 6. Statements
    Chapter 4. Arrays and Pointers
    Chapter 3. Library Types
    Chapter 2.  Variables and Basic Types
    关于stm32不常用的中断,如何添加, 比如timer10 timer11等
    keil 报错 expected an identifier
    案例分析 串口的地不要接到电源上 会烧掉
    案例分析 CAN OPEN 调试记录 进度
  • 原文地址:https://www.cnblogs.com/feng-NET/p/4542284.html
Copyright © 2011-2022 走看看