您的位置:首页 > 其它

MVC3 Razor 视图引擎的基础语法

2012-06-30 19:18 387 查看
1._开头的cshtml文档将不能在服务器上访问,类似Global.asax等文件

2.服务端代码必须在@{}之间,要输出@符号可以用@Html.Encode("@")或者@@转义

()用来显示支持代码表达式,如:

@{
ViewBag.Title = "Sample";
string AppName = "MyApp";
}
<h2>@AppName.Model</h2>


目的是想输出<h2>MyApp.Model<h2>,这里引擎无法正确识别.的意义,要能够达到预期效果,需要将AppName用括号括起来:

@{
ViewBag.Title = "Sample";
string AppName = "MyApp";
}
<h2>@(AppName).Model</h2>


另一个例子,防止引擎解析为邮箱,为了输出Item_4

@{
ViewBag.Title = "Sample";
string test = "ssss";
}
<h1>Item_@(test.Length)</h1>


还有泛型方法等也需要显示使用(),因为"<"标记会使Razor转回标记
3.可以再@{}之间直接输入标签

@{
<p>text</P>
<div>div1</div>
}


@{}间不能直接输入非标签内容可以用@:单行输出

@{
@: text
@:text
}


或者用<text>输出多行

@{
<text>
sada
safas
fa
</text>
}


4. @model 强类型模型定义,模型在控制器中传入 例:

@model MvcApplication1.Models.Class1

类型需要完全限定,不想完全限定类名,可以用@using 导入命名空间,或者在Views\web.config的 <system.web.webPages.razor>配置节加上默认导入的命名空间

5. @section节点关键字

类似placeholder

在布局页中定义@RenderSection("header",true)或@RenderSection("header",false)

子页中使用@section header{}填充

母版页中的@Renderbody()使用子页默认内容填充

可以加入自定义的默认填充内容

@if (IsSectionDefined("foot")) {
@RenderSection("foot");
}
else {
@: No foot
}


6.注释块 @* *@之间内容为服务端注释,不会被执行,也不会输出到客户端
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: