MVC – 7.Razor 语法

7.1 Razor视图引擎语法

Razor通过理解标记的结构来实现代码和标记之间的顺畅切换。

@核心转换字符,用来 标记-代码 的转换字符串。

语境A:

@{

string rootName="GZCZ";

}

<span>@rootName.Models</span> 错误

<span>@(rootName).Models</span>

语境B:

<span>[email protected]</span> 通过,因为@前面没有空格

<span>JamesZou @Itcast.us</span>不通过,因为@前面有空格

7.2 Razor表达式自动使用了HTML编码 (√)

代码:razorView.cshtml(html输出)
代码:razorView.cshtml(html输出)

<div>
<!--7.1 输出html字符串(自动转义输出字符串中的<>)-->
@{
string html = "<input type=‘text‘></input>";
}
@html

<!--7.2 输出html字符串(不转义)-->
@Html.Raw(html)
</div>


7.3 js代码防止转义

        <script>
alert("@Ajax.JavaScriptStringEncode(ViewBag.htmlStr)")
</script>

7.4 代码块

 <!--7.4 代码块-->
@{ string s = "Hi~";
int age = 11;
}

7.5
无返回值方法,在当前视图中传递参数给另一个视图(√)

<!--7.5 调用无返回值方法,要加大括号 && 在当前视图中传递参数 给另一个视图-->
@{ViewData["partData"]="幻影车神3";}
@{Html.RenderPartial("~/Views/Home/First.cshtml");}
<!--7.5 调用有返回值方法,不用加大括号 && 因此@后直接跟变量或带返回值方法-->
@Html.TextBox("12121212")

~/Views/Home/First.cshtml
~/Views/Home/First.cshtml

@{
Layout = null;
}

<!DOCTYPE html>

<html>
<head>
<meta name="viewport" content="width=device-width" />
<title>First</title>
</head>
<body>
<div>
@for (int i = 0; i < 10; i++)
{
<div style="background:#00ffff">222</div>

//这里是从~/Views/Students/razorView.cshtml传递过来的ViewData["partData"]
@ViewData["partData"]
}

</div>
</body>
</html>


7.6 注释

<!--7.6 注释-->
@*哈哈哈哈哈*@

7.7 在C#代码块中直接输出字符串文本(√)

 <!--7.7 在C#代码块中直接输出字符串文本-->
@{
//1.<text>
<text>一行白鹭上青天</text>
//[email protected]:
@:千里江陵一日还
}

7.8 @@转移

<[email protected]转义-->
@@包租婆,没水啦~~~

7.9 调用泛型方法

调用泛型方法,需要特殊语法:加上一对小括号:

@(Html.SayHi<string>())

了解:

数据类型转换

用As....()方法转换,如:@("211".AsInt())

数值类型判断

用IsInt()方法,如 @(strAge.IsInt()?"是":"否")

路径转换

用Href()方法,如: @Href("~/Home/Index");

7.10 HtmlHelper重用:相当于是在 视图中 定义
方法

作者:唐三三
出处:http://tangge.cnblogs.com
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

时间: 2025-01-02 18:45:24

MVC – 7.Razor 语法的相关文章

mvc 4 razor语法

mvc 4 razor语法讲解和使用 1.这里的  @{Layout="文件路径";}  代码块指定了整个项目默认所使用的布局文件(如图:) @RenderBody()对于所有的页面默认的情况下都会使用这个布局(WebForm的模板) @RenderBody()相当于一个占位符其他页面的所有内容都会被引擎渲染在这个地方. @RenderSecion()这个占位符表示:在这里会渲染页面里面的一个节(可以是html代码也可以是c#代码和Html的结合体). @RenderSection(&

【转载】【MVC 学习 Razor语法】

Razor是MVC3中才有的新的视图引擎.我们知道,在ASP.NET中,ASPX的视图引擎依靠<%和%>来调用C#指令.而MVC3以后有了一套新的使用@标记的Razor语法,使用起来更灵活更简洁.下面通过一些简单示例让大家快速撑握Razor语法的使用. 准备工作 在演示Razor语法的使用之前,我们需要做一些准备工作. 1.打开VS创建一个ASP.NET MVC空项目,很简单,就不具体演示了. 2.添加一个Model.在项目的Models文件夹中添加一个名为Product的类.在这我们把前一篇

.net MVC,Razor语法详细介绍

MVC框架 Model View Controller,其实是业务层和视图层的框架. 该框架的特点是: 1.业务层非常清晰,一个控制器里的一个Action只完成一件事情. 2.与视图交互逻辑也非常清晰,通过Model传递,或者说将业务处理完成的数据,封装成视图模型,传给视图,还提供了ViewBag属性,传递一些未封装在视图模型里的参数. 3.提供了路由技术,以此可以简化URL,并能非常方便的写出伪静态. 4.提供了参数绑定特性BindAttribute,能够方便快捷的获取Request里的参数,

MVC之Razor语法

Razor是MVC3中才有的新的视图引擎.我们知道,在ASP.NET中,ASPX的视图引擎依靠<%和%>来调用C#指令.而MVC3以后有了一套新的使用@标记的Razor语法,使用起来更灵活更简洁.下面通过一些简单示例让大家快速撑握Razor语法的使用. 准备工作 在演示Razor语法的使用之前,我们需要做一些准备工作. 1.打开VS创建一个ASP.NET MVC空项目,很简单,就不具体演示了. 2.添加一个Model.在项目的Models文件夹中添加一个名为Product的类.在这我们把前一篇

从项目经理的角度看.net的MVC中Razor语法真的很垃圾.

我们知道,Razor语法中我们可以直接使用@if(){}等代码段,这使得.net程序员在写模版时更容易了. 对比如下: 语法名称 Razor 语法 Web Forms 等效语法 代码块(服务端) @{ int x = 123; string y = "test."; } <% int x = 123; string y = "test."; %> 表达式 encode:<p>@model.Message</p> no encode

mvc 4 razor语法讲解和使用

Razor语法的分类 @using : 引入命名空间 @model :声明强类型的数据model类型 @section :定义要实现母版页的节的信息 @RenderBody():当创建基于页面的布局时,视图的内容会和布局页合并,而新创建的视图的内容会通过布局页面的@RenderBody方法呈现在标签之间. @RenderPage :呈现一个页面.比如网页中固定的头部可以单独放在一个共享视图文件中,然后在布局也免中通过这个方法调用,例如 @RenderPage("~/Views/Shared/_H

Asp.net MVC]Asp.net MVC5系列——Razor语法

目录 概念 Razor语法 总结 系列文章 [Asp.net MVC]Asp.net MVC5系列--第一个项目 [Asp.net MVC]Asp.net MVC5系列--添加视图 [Asp.net MVC]Asp.net MVC5系列--添加模型 [Asp.net MVC]Asp.net MVC5系列--从控制器访问模型中的数据 [Asp.net MVC]Asp.net MVC5系列--添加数据 [Asp.net MVC]Asp.net MVC5系列--在模型中添加验证规则 [Asp.net

ASP.NET MVC中的Razor语法

1.Razor的基本语法 @* 多行代码时需要包含在大括号内{}和每句代码后都需要加分号; *@ @{ ViewBag.Title = "Index"; ViewBag.Name = "Linq"; ViewBag.IsOk = false; List<string> list = new List<string>() { "11", "22", "33", "44&quo

MVC Razor 语法(转)

http://blog.csdn.net/pasic/article/details/7072340 原文地址:MVC Razor 语法(转)作者:panzhaowen_jacki 语法名称 Razor 语法 Web Forms 等效语法 代码块 @{ int x = 123; string y = "because."; } <% int x = 123; string y = "because."; %> 表达式(默认encode) <span