• Razor基础,视图里如何调用controller里的函数


    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是由程序生成的等等。

  • 相关阅读:
    小工具
    git
    git如何做个人构建
    菜鸟教程
    Xftp和Xshell
    IDEA
    webStorm
    HBuilder
    chrome浏览器
    Vue-Server-Renderer
  • 原文地址:https://www.cnblogs.com/sjqq/p/7405934.html
Copyright © 2020-2023  润新知