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. nexus 搭建 maven 私服

    nexus 搭建 maven 私服 本机环境 Win 8 JDK 7 Maven 3.2 Nexus 2.11 版本选择 http://www.sonatype.org/nexus/archivedn ...

  2. baidu让用户更快看到首页

    //让用户更快看到首页 if(!location.hash.match(/[^a-zA-Z0-9]wd=/)) { document.getElementById("wrapper" ...

  3. Python 1-2模块的循环导入问题

    run.py文件: import m1 # 第一次导入 # 验证解决方案一: ''' 正在导入m1 正在导入m2 ''' # print(m1.x) # print(m1.y) # 验证解决方案二: ...

  4. python爬取百度文库所有内容

    转载自 GitHub 的 Jack-Cherish 大神 基本环境配置 版本:python3 系统:Windows 相关模块: import requests import re import jso ...

  5. Linux最常用的基础命令 上篇

    Linux最常用的基础命令个人总结 计算机基础知识 32bit和64bit系统的区别.系统运行机制 1989年python 诞生 C语言是编译型的语言,不太支持跨平台 Django 江购 32bit= ...

  6. STM32F407 按键输入实验 库函数版 个人笔记

    读取IO口输入的函数: STM32F4 的 IO口做输入使用的时候,是通过调用函数 GPIO_ReadInputDataBit()来读取 IO 口的状态的.了解了这点,就可以开始我们的代码编写了. 按 ...

  7. jsp学习之如何在web层创建Servlet

    jsp动态网页的文件目录结构如下: 1.src下存放java代码 2.包web_xx为web层 3.webcontent里面是jsp文件 jsp页面中的请求交付给servlet处理,在实际中 jsp的 ...

  8. jQuery学习之------选择器

    a.id选择器 <div id=”test1”></div> var div1=$(“#test1”);                //同css的写法一样id选择器用#号实 ...

  9. 九度oj 题目1181:遍历链表

    题目1181:遍历链表 时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:3483 解决:1465 题目描述: 建立一个升序链表并遍历输出. 输入: 输入的每个案例中第一行包括1个整数:n(1 ...

  10. ABC077翻车实况

    今天强行打一波ABC,想作为信心赛,然而= = T1  日常练习读入&输出 T2  $STL$大法好,$sqrt$保平安,我强行递推$WA$了一圈,然后罚时++ T3  woc好难啊,$n=1 ...