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. centos下安装redis(记录其中踩坑的过程)

    一.先下载到redis-3.0.4.tar.gz包(本文以3.0.4版本为例) 我将这个包放在/opt目录下,在/opt下并解压这个包 tar -zxvf redis-.tar.gz 然后进入redi ...

  2. 在springBoot的控制台打印sql语句

    在springBoot+Mybatis日志显示SQL的执行情况的最简单方法就是在properties新增: properties形式 logging.level.com.eth.wallet.mapp ...

  3. memcached协议解析 及使用

    本文转载自:http://www.ccvita.com/306.html 协议memcached 的客户端使用TCP链接与服务器通讯.(UDP接口也同样有效,参考后文的 “UDP协议” )一个运行中的 ...

  4. leds-gpio driver

    我们还是先看看platform device是如何define的 platform device 是如何定义的 example1 在板级驱动中定义, 通过platform_add_devices()函 ...

  5. Python之爬虫-猫眼电影

    Python之爬虫-猫眼电影 #!/usr/bin/env python # coding: utf-8 import json import requests import re import ti ...

  6. Linux 下 Jenkins安装

    Jenkins介绍 Jenkins是基于Java开发的一种持续集成工具,用于监控持续重复的工作,功能包括: 1.持续的软件版本发布/测试项目. 2.监控外部调用执行的工作. 安装环境 操作系统:lin ...

  7. IP_MULTICAST_LOOP

    WINDOWS 中 该选项仅控制接收部分.即设置为0 则控制套接字无法接收自身消息.设置为1 则控制套接字使能接收自身消息. LINUX         中 该先项仅控制发送部分.即设置为0 则控制套 ...

  8. UART整理

    通用异步收发器简称UART,英文全称"Universal Asynchronous Receiver Transmitter".UART使用标准的TTL/CMOS逻辑电平(0~5V ...

  9. jQuery入门--- 非常好

    jQuery入门------https://blog.csdn.net/dkh_321/article/details/78093788

  10. 九度oj 题目1068:球的半径和体积

    题目1068:球的半径和体积 时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:6148 解决:2269 题目描述: 输入球的中心点和球上某一点的坐标,计算球的半径和体积 输入: 球的中心点和 ...