`
黄继华
  • 浏览: 45813 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

ASP.NET MVC3 系列教程 - Razor视图引擎基础语法

 
阅读更多

I:ASP.NET MVC3在Visual Studio 2010中的变化

在VS2010中新建一个MVC3项目可以看出与以往的MVC2发生了很明显的变化
image

1.ASP.NET MVC3必要的运行环境为.NET 4.0 (想在3.5用MVC3,没门!)
2.默认MVC3模板项目已集成

image

3.全新的Razor视图引擎
@{
    ViewBag.Title = "Home Page";
}

<h2>@ViewBag.Message</h2>
<p>
    To learn more about ASP.NET MVC visit 
    <a href="http://asp.net/mvc" title="ASP.NET MVC Website">
        http://asp.net/mvc
    </a>.
    @ServerInfo.GetHtml()
</p>
4. 关于所有带"_"开头的文档

ASP.NET MVC3默认情况下会拒绝所有访问地址以"_"开头的_*.cshtml文档.关于_*.cshtml文档,其实他是WebPages中的一部分,稍后将会详细介绍该以"_"文档的使用说明.
例如访问 http://localhost:7985/_ViewPage1.cshtml
image

II:Razor视图引擎-基础语法

-基础-

所有以 @开头 或 @{ /* 代码体 */ } (在@与{直接不得添加任何空格) 的部分代码都会被ASP.NET引擎进行处理.
在 @{ /*代码体*/ } 内的代码每一行都必须以";"结束,如
@{
var i = 10;
var y = 20;
}
而 @xxx 则不需要以";"作为结束符,如
@i 输出 10
@y; 输出 20;
代码区内字母分大小写.
字符类型常量必须用""括起例如: @{ string str = "my string"; }
-注意-

如需要在页面输出”@”字符
可以使用HTML ASCII编码&#64;
当然Razor也提供智能分析功能: 如果在@的前一个字符若是非空白字符,则ASP.NET不会对其进行处理
如:<p>text@i xx</p> 输出 text@i xx

单行语法:
@{ var I = 10; }
多行语法:

@{ 
    var I = 10;
    Var y = 20;
}

1. 使用局部变量,Razor不支持访问修饰符(public,private等,这个没任何意义)
在单行上定义局部变量
@{ var total = 7; }
@{ var myMessage = "Hello World";}
在多行上定义局部变量

@{
    var greeting = "Welcome to our site!";
    var weekDay = DateTime.Now.DayOfWeek;
    var greetingMessage = greeting + " Today is: " + weekDay;
}


在上下文中使用变量

<p>The value of your account is: @total </p>
<p>The value of myMessage is: @myMessage</p>


注意:
变量拼接输出
@{ var i = 10; }
<p>text @i text</p> 将输出 text 10 text
但是如果你想要输出 text10text 呢?

<p>text@{@i}text</p>即可
<p>text@i text</p> 将输出 text@i text
<p>text@itext</p> 将输出 text@itext
<p>text @itext</p> 将报错

如果是输出的是变量的方法名则不需要用@{}括住也可生效,但注意在@字符前记得加空格(感谢spook指出)如:
<p>text @i.ToString()text</p>
使用变量对象可直接写: @var1 @var2 @myObject.xx

2. 使用逻辑处理

@{
    if (xx)
    {
    //do something
    }
    else
    {
    //do anything
    }
}

3. 在@{... }内部使用html标记

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

4. 在@{...}内部输出文本
利用@:进行单行输出:

@{
    @:This is some text
    @:This is text too
    @:@i 也可输出变量
}

利用<text />进行多行输出:

@{
    <text>
        tomorrow is good
        some girl is nice
    </text>
}

5. 在@{...}内部使用注释

@{
    //单行注释
    var i = 10;
    //defg
}

    @* 多行注释 *@
    @* 
        多行注释
        多行注释 
    *@


@{
    @*
        多行注释
        多行注释 
    *@
    var i = 10;  @* asdfasf *@
}

<!-- 同时也可以使用C#默认的/* ... */ -->

@{
    /*
        多行注释 
    */
}

若在@{ ... }内部使用<!-- -->注释,则会输出到页面之中,如果在<!-- -->内部使用@变量,则会被处理
@{
<!-- time now: @DateTime.Now.ToString() -->
}
输出: <!-- time now: 4/9/2011 12:01 -->>

6. 类型转换
AsInt(), IsInt()
AsBool(),IsBool()
AsFloat(),IsFloat()
AsDecimal(),IsDecimal()
AsDateTime(),IsDateTime()
ToString()
例子:

@{
    var i = “10”;
}

<p> i = @i.AsInt() </p> <!-- 输出 i = 10 --> 

7. 使用循环

<!--方式1-->
@for (int i = 10; i < 11; i++)
{
    @:@i
}
<!--方式2-->
@{
    for (int i = 10; i < 11; i++)
    {
        //do something
    }
}

<!--while同理-->

到此结束!呼呼

分享到:
评论

相关推荐

    asp.net mvc demo[25-day]

    ASP.NET MVC 是一个开源的、基于模型-视图-控制器(MVC)设计模式的Web应用程序框架,由微软开发并维护。这个框架提供了一个轻量级、可测试和灵活的方式来构建动态网站、Web应用程序和Web服务。在"asp.net mvc demo...

    ASPNET_MVC3_系列教程_-_Razor视图引擎基础语法

    ### ASP.NET MVC3系列教程:Razor视图引擎基础语法详解 #### 一、ASP.NET MVC3在Visual Studio 2010中的显著变化 在深入探讨Razor视图引擎的基础语法之前,我们先来看看ASP.NET MVC3在Visual Studio 2010中的主要...

    Asp.net MVC 3实例学习之ExtShop系列最终源代码

    在Asp.net MVC 3中,Razor视图引擎允许开发者使用C#语法编写视图,这使得视图更加简洁且易于理解。在ExtShop项目中,各种商品列表、购物车、订单详情等页面都是由相应的视图呈现的。 3. **控制器(Controller)**:...

    pro-asp.net-mvc-5-platform-master.zip

    ASP.NET MVC 5 是微软开发的一个强大的Web应用程序框架,它结合了ASP.NET Web Forms和MVC(模型-视图-控制器)设计模式的优点,为开发者提供了更灵活、可测试的Web开发解决方案。这本书"精通ASP.NET MVC5"的源代码...

    ASP.NET-MVC-3-RTM-Release-Notes.doc

    微软提供了详细的文档,包括教程、API参考和示例,帮助开发者学习和理解ASP.NET MVC 3的新特性。这些文档涵盖了升级指南、常见问题和最佳实践。 5. **升级ASP.NET MVC 2项目** ASP.NET MVC 3 RTM提供了升级工具,...

    ASP.NET MVC4 教程(完整版)

    ASP.NET MVC4 是微软开发的一款基于模型-视图-控制器(Model-View-Controller)设计模式的开源Web应用程序框架。这个教程的完整版涵盖了从基础到高级的ASP.NET MVC4开发知识,旨在帮助开发者深入理解和掌握该技术。...

    dwz框架 asp.net mvc3

    MVC3是ASP.NET MVC系列的第三个主要版本,它引入了许多新特性,如 Razor视图引擎、增强的模型绑定、对jQuery的内置支持以及更强大的错误处理机制。 当DWZ框架与ASP.NET MVC3结合使用时,可以实现前后端分离的开发...

    ASP.NET MVC4

    4. **azor视图引擎**:ASP.NET MVC4使用改进的Razor视图引擎,提供了更简洁的代码语法和更好的性能。 5. **Bundling and Minification**:这个特性允许开发者将多个CSS和JavaScript文件打包和压缩成单个文件,减少...

    ASP.NET-MVC-3-RTM-Release-Notes

    总的来说,ASP.NET MVC 3的发布带来了诸多增强,包括改进的Ajax支持、更强大的验证机制、Razor视图引擎的引入以及对辅助方法的扩展。这些更新旨在提高开发效率,简化代码管理,并提升应用程序的用户体验。在进行升级...

    ASP.NET MVC5

    4. **razor视图引擎**:Razor视图引擎提供了一种简洁的语法来创建视图,允许在HTML中嵌入C#代码,提高了视图的可读性和效率。 5. **过滤器**:过滤器是ASP.NET MVC5中的一种可重用组件,可以应用于控制器或动作,...

    Asp.net2.0MVC实战入门教程-下-实战篇

    在Asp.net MVC中,视图通常是Razor视图,使用C#语法嵌入HTML中,允许开发者动态生成HTML。视图辅助器(Html Helper)是视图中的一个重要工具,提供了一种安全的方式来生成HTML元素,避免了代码注入的问题。 3. **...

    asp.net MVC4 CMS

    ASP.NET MVC4 CMS的视图通常由Razor语法编写,这种语法允许开发者在HTML中嵌入C#代码,实现动态内容渲染。开发者可以根据需求创建各种布局和部分视图,以实现灵活的页面结构。 **控制器(Controller)**: 控制器...

    基于ASP.NET MVC项目实例

    **ASP.NET MVC 框架详解** ASP.NET MVC(Model-View-Controller)是一种轻量级...通过这个项目实例,你将不仅学会如何使用ASP.NET MVC框架,还能掌握Web开发的最佳实践,为未来更复杂的Web应用程序开发打下坚实基础。

    ASP.NET MVC 项目集合.zip

    ASP.NET MVC 是微软开发的一款用于构建动态Web应用程序的框架,它结合了ASP.NET的优势和Model-View-Controller(MVC)设计模式的灵活性。在这个"ASP.NET MVC 项目集合.zip"压缩包中,可能包含了多个ASP.NET MVC项目...

    ASP.NET MVC 5 网站开发之美

    4. **视图引擎**:ASP.NET MVC 5支持多种视图引擎,如Razor视图引擎,它提供了一种简洁的语法来创建HTML模板。开发者可以使用C#语法直接在视图中编写代码,提高开发效率。 5. **身份验证与授权**:ASP.NET MVC 5...

Global site tag (gtag.js) - Google Analytics