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><script>alert('你好!');</script></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里的函数的更多相关文章
- 为什么在DllMain里不能调用LoadLibrary和FreeLibrary函数?
为什么在DllMain里不能调用LoadLibrary和FreeLibrary函数? MSDN里对这个问题的答案十分的晦涩.不过现在我们已经有了足够的知识来解答这个问题.考虑下面的情况: ...
- c语言里如何调用汇编里的变量?
c语言里如何调用汇编里的变量? 汇编语言:是声明全局变量 .globl _end_ofs _end_ofs: .word _end - _start c语言:声明这个变量,然后再调用这个变量 void ...
- ASP.NET Core Razor 布局视图 - ASP.NET Core 基础教程 - 简单教程,简单编程
原文:ASP.NET Core Razor 布局视图 - ASP.NET Core 基础教程 - 简单教程,简单编程 ASP.NET Core Razor 布局视图 上一章节中我们学习了如何使用 EF ...
- 如果Controller里有私有的方法,能成功访问吗?
目录 背景 原因 cglib代理的锅 换成JDK动态代理呢 参考 背景 写代码的时候,复制粘贴的时候,没注意到方法的属性,就导致了Controller里有了一个私有的方法,然后访问这个接口的时候就报了 ...
- Yii里获取当前controller和action的id
Yii里获取当前controller和action的id 在控制器里$name = $this->getId(); // controller$name = $action->id; ...
- 彻底理解tomcat是怎样多线程处理http请求并将代码执行到controller里的的
彻底理解tomcat是怎样多线程处理http请求并将代码执行到controller里的的 1.线程池,thread = threadPool.getThread(),thread.executeHtt ...
- 在c或c+程序里打印调用栈。转
在C/C++程序里打印调用栈信息 我们知道,GDB的backtrace命令可以查看堆栈信息.但很多时候,GDB根本用不上.比如说,在线上环境中可能没有GDB,即使有,也不太可能让我们直接在上面调试.如 ...
- c#调用js,以及js调用C#里的函数, c#自己生成js代码,实现对web的控制
using mshtml;using System;using System.Collections.Generic;using System.Linq;using System.Security.P ...
- Controller里写自己需要的Action,参数的名字必须和路由设置的参数名一致
Controller里写自己需要的Action,参数的名字必须和路由设置的参数名一致,如果参数不一致,传过去为null
随机推荐
- 15数据库与ADO.Net
数据库与ADO.Net 数据库与ADO.Net 8.1 数据库基本概念 数据库提供了一种将信息集合在一起的方法.数据库应用系统主要由三部分组成:数据库管理系统(DBMS),是针对所有应用的,例如A ...
- python 深复制和浅复制
https://www.python-course.eu/python3_deep_copy.php-------------------------------------------------- ...
- vue中axios发送post请求,后端(@RequestParam)接不到参数
遇到的问题描述 :axios post 请求,后端接收不到参数. 我们的接口是java,用@RequestParam来接收前端的参数 解决方案:使用qs:axios中已经包含有qs,所以无需重新安装, ...
- 中南大学2019年ACM寒假集训前期训练题集(基础题)
先写一部分,持续到更新完. A: 寒衣调 Description 男从戎,女守家.一夜,狼烟四起,男战死沙场.从此一道黄泉,两地离别.最后,女终于在等待中老去逝去.逝去的最后是换尽一生等到的相逢和团圆 ...
- tcpdump用于抓取tcp数据包
一.简单使用:-c监听次数.-v打印详情.host后接监听地址 1.1.监听 tcpdump -c -v host www.baidu.com 1.2.访问被监听的网址: 1.3.查看监听的数据:
- SSH安全服务
ssh安全服务 client \ sever ssh: secure shell, protocol, 22 / tcp, 安全的远程登录, 基于RSA或DSA实现身份认证 两 ...
- UVA 221 城市化地图(离散化思想)
题意: 给出若干个栋楼俯视图的坐标和面积,求从俯视图的南面(可以视为正视图)看过去到底能看到多少栋楼. 输入第一个n说明有n栋楼,然后输入5个实数(注意是实数),分别是楼的左下角坐标(x,y), 然后 ...
- (转载)C++ string中find() ,rfind() 等函数 用法总结及示例
string中 find()的应用 (rfind() 类似,只是从反向查找) 原型如下: (1)size_t find (const string& str, size_t pos = 0) ...
- Springboot 缓存使用
. CachingProvider . CacheManager . Cache . Entry . Expiry 1. 开启基于注解的缓存 @EnableCaching 下面列出几个核心的注解 @C ...
- 洛谷 P2335 SDOI 2005 毒瘤 位图(也补上注释了)
#include<iostream> #include<cstdio> #include<queue> #include<cstring> using ...