`
sty2008boy
  • 浏览: 294712 次
  • 性别: Icon_minigender_1
  • 来自: 太原
社区版块
存档分类
最新评论

ASP.NET MVC3 Razor 语法列表

阅读更多

基本寫法介紹

為了讓文章更清楚這裡先假設以下輸出值

Model.Content="<a href='http://demo.tc' >demo小鋪</a>"
item.Key="<span>IsKey</span>"
item.Value="<span>IsValue</span>"
 

Razor	 Aspx
@{
    int a = 123;
    string b = "demoshop";
 }
<%
    int a = 123;
    string b = "demoshop";
%>
程式碼區塊:無輸出
<div>
    @Model.Content
</div>
<div>
    <%:Model.Content %>
</div>
HTML Encoded:<a href='http://demo.tc' >demo小鋪</a>
<div>
    @Html.Raw(Model.Content)
</div>
<div>
    <%=Model.Content %>
</div>
HTML Unencoded:demo小鋪
@foreach (var item in collection)
{
    <span>@item.Key</span>
}
<%foreach (var item in collection)
    {%>
        <span><%:item.Key %></span>
<%} %>
混合程式碼:<span>IsKey</span>
@foreach (var item in collection)
{
    <text>我是純文字</text> @item.Value
}
<%foreach (var item in collection)
    {%>
        我是純文字 <%:item.Key %>
<%} %>
混合程式碼:我是純文字 <span>IsValue</span>
@foreach (var item in collection)
{
    @:我是純文字 @item.Value
}
<%foreach (var item in collection)
    {%>
        我是純文字 <%:item.Key %>
<%} %>
混合程式碼:我是純文字 <span>IsValue</span>
@for (int i = 0; i < 3; i++)
{
    @:目前是第 @i. 
}
<%for (int i = 0; i < 3; i++)
  {%>
      目前是第<%=i %>.
<%} %>
混合程式碼:目前是第 0. 目前是第 1. 目前是第 2.
@(Model.Content == "" ? "沒貨" : Model.Content)

<%:Model.Content==""?"沒貨": Model.Content%>
三元運算子:<a href='http://demo.tc' >demo小鋪</a>
@*你看不到我*@
<%--你看不到我--%>
註解:無輸出
以上部分表格參考C# Razor Syntax Quick Reference。

神奇的 [at] 符號

@念法是 [at] ,台灣俗稱小老鼠,在 Razor 中它有舉足輕重的用處,因為同時列在上表 demo 覺得有點亂因此在給它一個區塊來放它,Razor 很有趣!基本上它會判斷空白字元與斷行符號

比如說我需要輸出 item.Key和item.Value 的值可以有以下的寫法

@item.Key@item.Value

@(item.Key + item.Value)
如果你需要 Unencoded

@:item.Key @item.Value
如果要輸出 I @ Taiwan

I @@ Taiwan
email 的輸出根本不需要有任何調整

test@test.com
前文有提到 Razor 會判斷空白字元和斷行符號,也因為 Email 的 @ 前後都有字所以會很聰明的認定它為字串,並不會當變數看,再來看下面一個範例會更清楚

依據上面的範例今天我們要輸出 demo歡迎登入的字樣,網友們可能會這樣寫

@User.Identity.Name 歡迎登入 //變數和文字中利用一個半型空白來斷開
但這有可能是我們不想要的效果,那就可以利用 @() 包住變數將它改寫為

@(User.Identity.Name)歡迎登入
就會是黏在一起的文字了

同場加映HTML5 支援

在 HTML5 中有一個很不錯的資料記錄標籤 data-xxx ,因為使用他不需要自行定義標籤因此 demo 還滿喜歡的而且利用 jQuery 就可以相當簡單的把 這標籤的值取出( 官方 API )但是如果你想在 ASP.NET MVC3 中使用需要調整一下寫法

@Html.TextBoxFor(model => model.Key, new {data_test="500" })
必須要使用底線,編譯的時候會自動轉換
 
分享到:
评论

相关推荐

    .net MVC、.Net core+Linux视频教程

    http://ASP.Net MVC:Razor语法详解;分页、数据传输方式(ViewBag、ViewData、TempData、Model)、各种ActionResult、四种Filter(IAuthorizationFilter、IActionFilter、IResultFilter、IExceptionFilter)、...

    ASP.NET MVC 3高级编程

    《asp.net mvc 3高级编程》 第1章 入门 1 1.1 asp.net mvc简介 1 1.1.1 asp.net mvc如何适应asp.net 1 1.1.2 mvc模式简介 2 1.1.3 mvc在web框架中的应用 2 1.1.4 asp.net mvc 3的发展历程 3 1.1.5 razor视图...

    [ASP.NET MVC 小牛之路] 文章系列

    三、[ASP.NET MVC 小牛之路]03 - Razor语法 四、[ASP.NET MVC 小牛之路]04 - 依赖注入(DI)和Ninject 五、[ASP.NET MVC 小牛之路]05 - 使用 Ninject 六、[ASP.NET MVC 小牛之路]06 - 使用 Entity Framework 七、[ASP...

    【ASP.NET编程知识】ASP.NET MVC学习教程之Razor语法.docx

    【ASP.NET编程知识】ASP.NET MVC学习教程之Razor语法.docx

    ASP.NET MVC 4 高级编程 源码

    《ASP.NET MVC 3 高级编程》主要内容是描述视图的概念,探讨Razor语法、NuGet、单元测试等,解释控制器在MVC框架中的作用,以及模型在绑定和数据访问策略中发挥的作用,演示如何显示和处理表单,涵盖添加到April ...

    详解ASP.NET MVC3:Razor的@:和语法

    这是我正在写的博文系列中的另一篇,涵盖ASP.NET MVC 3的一些新功能: http://weblogs.asp.net/scottgu/archive/2010/10/19/asp-net-mvc-3-new-model-directive-support-in-razor.aspx Razor中的布局10月22日) 用...

    ASP.NET Core MVC从入门到精通系列文章PDF版

    本系列文章共计20篇,主要包括ASP.NET Core MVC项目创建,启动运行,以及命名约定,创建控制器,视图,模型,接收参数,传递数据ViewData,ViewBag,路由,页面布局,wwwroot和客户端库,Razor语法,...

    Professional ASP.NET MVC3 PDF高清版

    《ASP.NET MVC 3 高级编程》主要内容是描述视图的概念,探讨Razor语法、NuGet、单元测试等,解释控制器在MVC框架中的作用,以及模型在绑定和数据访问策略中发挥的作用,演示如何显示和处理表单,涵盖添加到April ...

    理解ASP.NET MVC中的Razor视图引擎

     Razor 是一种允许向网页中嵌入基于服务器的代码(C#)的标记语法,是微软针对ASP.NET MVC推出的模板引擎。  C# 的主要 Razor 语法规则  Razor 代码封装于 @{ … } 中  行内表达式(变量和函数)以 @ 开头 ...

    asp.net mvc3资料

    MVC初步入门讲解.pdf razor语法手册.pdf

    ASP.NET MVC使用RazorEngine解析模板生成静态页

    在早期的MVC版本中默认使用的是ASPX模板引擎,Razor在语法上的确不错,用起来非常方便,简洁的语法与.NET Framework 结合,广泛应用于ASP.NET MVC 项目。  我们在很多项目开发中会常常用到页面静态化,页面静态化有...

    .NETC#汇总 -ASP.NET MVC.rar

    ASP.NET MVC是微软的一个开源MVC框架,用于创建Web应用程序。以下是一些关键的概念和代码示例: 控制器(Controllers):控制器是处理用户输入和响应的部分。以下是一个简单的控制器示例,它有一个动作方法(Action...

    ASP.NET MVC学习教程之Razor语法

    主要给大家介绍了关于ASP.NET MVC学习教程之Razor语法的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

    RazorPDF, 在 ASP.NET MVC中,通过 Razor 视图制作pdf的简单项目.zip

    RazorPDF, 在 ASP.NET MVC中,通过 Razor 视图制作pdf的简单项目 RazorPDFRazorPDF是一个简单的项目,它使用 Razor 视图引擎来创建 pdf 。 由于 Razor 是一个模板语法,它可以做的不仅仅是生成 HTML 。 RazorPDF使用...

    CshtmlComponent:CshtmlComponent-ASP.NET Core MVC和Razor页面组件

    标记助手不支持Razor语法,视图组件无法访问嵌套的子内容。 Razor组件不支持运行时编译,并且在标准MVC或Razor Page项目中不能很好地工作。 从MVC或Razor Pages应用程序的角度来看,CshtmlComponent结合了这些技术...

    详解ASP.NET MVC 解析模板生成静态页(RazorEngine)

    在早期的MVC版本中默认使用的是ASPX模板引擎,Razor在语法上的确不错,用起来非常方便,简洁的语法与.NET Framework 结合,广泛应用于ASP.NET MVC 项目。 我们在很多项目开发中会常常用到页面静态化,页面静态化有...

    ASP.NET MVC数组模型绑定详解

    在ASP.NET MVC中使用Razor语法可以在视图中方便地展示数组,如果要进行数组模型绑定,会遇到索引断裂问题,如下示例: &lt;input type=text name=[0].Name /&gt; &lt;input type=text name=[1].Name /&gt; &lt;input...

    MVC4Preview

    •ASP.NET网页和新的Razor语法提供了一个快速,平易近人,轻量级的方式来组合服务器代码与HTML创建动态Web内容 的NuGet,一个自由,开放源码的开发人员集中的软件包管理系统。NET平台的意图简化的过程中,将第三方...

    AspNetMVC4

    •ASP.NET网页和新的Razor语法提供了一个快速,平易近人,轻量级的方式来组合服务器代码与HTML创建动态Web内容 的NuGet,一个自由,开放源码的开发人员集中的软件包管理系统。NET平台的意图简化的过程中,将第三方...

Global site tag (gtag.js) - Google Analytics