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('你好!');&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是由程序生成的等等。

Razor基础,视图里如何调用controller里的函数的更多相关文章

  1. 为什么在DllMain里不能调用LoadLibrary和FreeLibrary函数?

    为什么在DllMain里不能调用LoadLibrary和FreeLibrary函数? MSDN里对这个问题的答案十分的晦涩.不过现在我们已经有了足够的知识来解答这个问题.考虑下面的情况:       ...

  2. c语言里如何调用汇编里的变量?

    c语言里如何调用汇编里的变量? 汇编语言:是声明全局变量 .globl _end_ofs _end_ofs: .word _end - _start c语言:声明这个变量,然后再调用这个变量 void ...

  3. ASP.NET Core Razor 布局视图 - ASP.NET Core 基础教程 - 简单教程,简单编程

    原文:ASP.NET Core Razor 布局视图 - ASP.NET Core 基础教程 - 简单教程,简单编程 ASP.NET Core Razor 布局视图 上一章节中我们学习了如何使用 EF ...

  4. 如果Controller里有私有的方法,能成功访问吗?

    目录 背景 原因 cglib代理的锅 换成JDK动态代理呢 参考 背景 写代码的时候,复制粘贴的时候,没注意到方法的属性,就导致了Controller里有了一个私有的方法,然后访问这个接口的时候就报了 ...

  5. Yii里获取当前controller和action的id

    Yii里获取当前controller和action的id 在控制器里$name = $this->getId();  // controller$name = $action->id;  ...

  6. 彻底理解tomcat是怎样多线程处理http请求并将代码执行到controller里的的

    彻底理解tomcat是怎样多线程处理http请求并将代码执行到controller里的的 1.线程池,thread = threadPool.getThread(),thread.executeHtt ...

  7. 在c或c+程序里打印调用栈。转

    在C/C++程序里打印调用栈信息 我们知道,GDB的backtrace命令可以查看堆栈信息.但很多时候,GDB根本用不上.比如说,在线上环境中可能没有GDB,即使有,也不太可能让我们直接在上面调试.如 ...

  8. c#调用js,以及js调用C#里的函数, c#自己生成js代码,实现对web的控制

    using mshtml;using System;using System.Collections.Generic;using System.Linq;using System.Security.P ...

  9. Controller里写自己需要的Action,参数的名字必须和路由设置的参数名一致

    Controller里写自己需要的Action,参数的名字必须和路由设置的参数名一致,如果参数不一致,传过去为null

随机推荐

  1. 【东软实训】SQL多表链接

    如果一个查询同时涉及两个以上的表,则称之为链接查询,链接查询是关系数据库中最主要的查询,主要包括等值链接查询.非等值链接查询.自身链接查询.外链接查询和复合条件链接查询. 这篇博文我们来对多表链接进行 ...

  2. MyEclipse2017修改Web Context Root

    1,复制一个已经存在的项目,并修改项目名 2,选中项目右键选择properities,打开. 但是这里的web context root无法修改 3,删除web显示properties的所有属性,输入 ...

  3. 利用jQuery对li标签操作

    <ul class="con" id="products"> <li i=" class=""> < ...

  4. winfrom 多线程 并发 和定时任务

    static void Main(string[] args) { //多个线程修改同一个值,使用lock锁解决并发 for (int i = 0; i < 4; i++) { Task.Fac ...

  5. 珂朵莉树(Chtholly Tree)学习笔记

    珂朵莉树(Chtholly Tree)学习笔记 珂朵莉树原理 其原理在于运用一颗树(set,treap,splay......)其中要求所有元素有序,并且支持基本的操作(删除,添加,查找......) ...

  6. LCS以及输出路径模板

    记忆 两个for用来寻找LCS,DP是二维的,每一维代表了字符串的长度. 寻找的代码部分 if(a[i-1]==b[j-1]) dp[i][j]=dp[i-1][j-1]+1; else dp[i][ ...

  7. PHP明细之间的关联和having进行分组,不推荐这样做,只是做为偷懒的办法

    -- 只求和wrt的数据,其它数据保持不变!SELECT A.return_id,A.relevant_id,A.order_id,A.deliver_order_id,A.product_id,A. ...

  8. linux纯字符界面不支持中文

    [2017-01-17] linux纯字符界面不支持中文

  9. 用pandas展示数据输出时列名不能对齐

    列名用了中文的缘故,设置pandas的参数即可,代码如下: import pandas as pd #这两个参数的默认设置都是False pd.set_option('display.unicode. ...

  10. 使用IDEA部署Myeclipse项目----亲测有效

    使用IDEA部署Myeclipse项目-----https://blog.csdn.net/u010570551/article/details/51510447