MVC3 Razor模板引擎
2015-01-05 15:13
176 查看
一、Razor基础
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是由程序生成的等等。
相关文章推荐
- MVC3 Razor模板引擎
- MVC3 Razor模板引擎
- MVC3 Razor模板引擎 @RenderBody、@RenderPage、@RenderSection及Html.RenderPartial、Html.RenderAction
- MVC3中Razor模板引擎如何修改View的基类
- MVC3 Razor模板引擎 @RenderBody、@RenderPage、@RenderSection及Html.RenderPartial、Html.RenderAction
- vs2010 mvc3创建的razor引擎模板页,子页面引用后出现当前上下文中不存在名称“ViewBag”
- asp.net模板引擎Razor中cacheName的问题分析
- asp.net模板引擎Razor中cacheName的问题分析
- MVC3 Razor视图引擎基础语法
- 为ASP.NET MVC 2.0添加Razor模板引擎 (on .NET4)
- 理解模板引擎Razor 的原理
- asp.net实现在非MVC中使用Razor模板引擎的方法
- .NET Core中使用Razor模板引擎
- C#模板引擎 RazorEngine3.7的扩展 — 引入外部文件
- 为ASP.NET MVC 2.0添加Razor模板引擎 (on .NET4) 推荐
- 理解模板引擎Razor 的原理
- 理解模板引擎Razor 的原理
- MVC Razor模板引擎 @RenderBody、@RenderPage、@RenderSection及Html.RenderPartial、Html.RenderAction
- MVC3 Razor视图引擎的基础语法
- MVC3 Razor视图引擎的基础语法