体验ASP.NET MVC 3中的Razor特性

  1 闲话ASP.NET MVC 3 beta

  不知道不觉MVC3更新了好几次了。。。因为一直在弄Silverlight的开发没有时间关注ASP.NET MVC.之前出preview 的时候就看了园子里的一些文章。

  但是总觉得"不咋地",依赖注入早就有一套了,全局拦截器也就那么回事。。好像都没有对开发效率有太大的提升。。。(一己之见.目前正在学习MVC3BEAT的DI)。

  除了RAZOR...

  好吧。 现在开始动手吧!

  2开工   2.1目录

   在_ViewStart.cshtml中指定

  StartPage.Layout 会在程序启动时,预先加载这个页面。

@{

    Layout = "~/Views/Shared/_Layout.cshtml";

}   2.2实现框架页

  _Layout.cshtml中

<!DOCTYPE html>

<html>

<head>

    <title>@View.Title</title>

    <link href="@Url.Content("~/Content/Site.css")" rel="stylesheet" type="text/css" />    

</head>

<body>

@*模板页*@

<div>

<fieldset>

    <legend>Main</legend>

    @RenderBody()

</fieldset>

<fieldset>

    <legend>底部
footer</legend>

    @RenderSection("footer" ); 

</fieldset>

</div>    

</body>

</html>

  @RenderBody() 呈现主体。

  @RenderSection("footer" ); 呈现部分:如底部的版权。

  在Index.cshtml中

@section footer{ 

copyrght@@facingwaller

}

  2.3显示 view里的变量和显示control里的变量  显示页面里定义的

  显示控制器

  control里的定义:

  view中的显示

  2.4其他一些常用写法 

  VIEW中

<fieldset>

    页面上的变量 use view variable: @@variable=@variable

    <br />

    来自控制器的 use Controller variable:@View.variable

    <br />

    循环嵌套HTML Loops and Nested HTML Sample

    @foreach (var p in words) {

        <big>@p ..</big>

    }

    <br />

    使用if else

    @if (IsTrue) {

        <b>@@IsTrue is @IsTrue</b>

    } else {

<b>@@IsTrue is @IsTrue</b>

    }

    <br />

    多行代码

    @{

        var number = 1;

        var num2 = 2;    

}

    Multi-Token Statements 变量和字符串拼凑的语句 @(number + "number is " + number);

    <br />

    HTML Encoding

    <br />

@*以下没弄懂-望指教*@

    @if (true) {

        <text> 

        hi it's razor<br />

        follow me ! I'm facingwaller

        </text>

        <br />

       <span>hi it's razor<br />

           follow me ! I'm facingwaller </span>

    } else {

}

    <br />

    Declarative HTML Helpers声明帮助方法

    @helper WordInText(string text) {

        foreach (var p in text) {

        <li>@p </li>

        }

}

    调用 @WordInText("ender")

   

</fieldset>

  最终效果

   3激动人心的RAZOR

尝鲜RAZOR这个页面引擎,感觉挺不错。

  1 用@ 代替 该死的<% %>显然<,%,>都是非常难敲到的键位。

  2 单行的@+变量的方式更加简洁。

  3 提供了静态大量的helper方法。

  4 其Chart和grid的辅助方法让图表和表格更加容易生成比之前的contrib开源的那个表格生产类库更加来得人性化。

  WebImage帮助创建图像,也包括基本的图像操作方法。这些以后我会继续体验和比较然后和大家分享。。。

  4 欢迎讨论其他的页面引擎

还有话要说。目前我还没有看过RAZOR的源码也没有体验过其他的(除了webpages)页面引擎。

说的不好的地方请大家帮指出,也欢迎大家说说其他的页面引擎,特别是说说易用性,设计思想,开发效率和性能,让偶开开眼界。

时间: 2024-09-11 10:25:08

体验ASP.NET MVC 3中的Razor特性的相关文章

一起谈.NET技术,体验ASP.NET MVC 3中的Razor特性

1 闲话ASP.NET MVC 3 beta 不知道不觉MVC3更新了好几次了...因为一直在弄Silverlight的开发没有时间关注ASP.NET MVC.之前出preview 的时候就看了园子里的一些文章. 但是总觉得"不咋地",依赖注入早就有一套了,全局拦截器也就那么回事..好像都没有对开发效率有太大的提升...(一己之见.目前正在学习MVC3BEAT的DI). 除了RAZOR...  好吧. 现在开始动手吧! 2开工  2.1目录     在_ViewStart.cshtml

领先技术:在ASP.NET MVC 4中创建为移动设备优化的视图

如果深入探讨有关编写移动设备网站的常识性考虑因素,会发现其中有一种内在矛盾.一方面,客户在其 编写应用程序和网站的方法中强烈要求(或乐于要求)移动优先.另一方面,同一些人又经常称赞 CSS 媒体 查询和流体布局.我所发现的矛盾在于经常利用 CSS 媒体查询和流体布局并未在其他内容之前优先处理移动 方面,它不是一种移动优先的方法.在本文中,我将介绍如何使用服务器端逻辑为给定设备呈现最佳的显示效 果,并介绍 ASP.NET MVC 4 的一种新功能,称为显示模式. 问题不在于 CSS 媒体查询作为一

为ASP.NET MVC 2.0添加Razor模板引擎 (on .NET4)

根据ScottGu的博客记述(http://weblogs.asp.net/scottgu/archive/2010/07/02/introducing-razor.aspx),在未来不久将会发布一个ASP.NET MVC 3.0的Preview版本,在这个版本中可以使用多个内置的模板引擎,以它发布出来的截图来看,其中包括NHaml,Spark以及微软刚刚发布的ASP.NET Web Pages(Razor). ASP.NET Web Pages包含在Web Matrix中,提供了一种新的模板模

asp.net MVC项目中 没有easyui插件的智能提示

问题描述 asp.net MVC项目中 没有easyui插件的智能提示 5C vs2015 中的mvc4项目,已经分别把jQuery.min.js jquery.easyui.min.jseasyui-lang-zh_CN.js依次拖入,写js代码的时候 智能提示只有jquery中的属性和方法 没有easyui的(例如$.messager就出不来智能提示),但是可以正常执行出来插件效果,尝试编辑cshtml.html格式的文件都不提示,尝试把 jquery.easyui.min.js的文件名改为

浅谈ASP.NET MVC 3中如何使用Model

昨天博客发了新文章,讲一下我对如何使用MVC中的Model的看法,不是什么大技术,当是一个技术讨论^^ 原文地址:http://www.youguanbumen.net/Article.aspx?id=79 原文: 前两天写了个文章ASP.NET MVC 3 -- Model远程验证,主要记录了一下ASP.NET MVC 3中新增的RemoteAttribute类的使用,得益于这个类,我们可以在模型中为属性配置客户端远程校验的业务,文章中给了出一个简单的实体类MyUser_Add,举了一个最常见

使用ASP.NET MVC Futures中的异步Action

之前看过老赵这两篇文章.也研究了一下老赵异步的实现方式. 不过感觉自己扩展的话,在ASP.NET MVC中使用异步还真是麻烦,刚好看到从RC1版开始 ASP.NET MVC Futures中提供了几个支持异步的类. 相关的类包括AsyncActionDescriptor.AsyncController.AsyncControllerActionInvoker. AsyncManager.AsyncResultWrapper.AsyncTimeoutAttribute.NoAsyncTimeout

在ASP.NET MVC 4中使用Kendo UI Grid

Kendo UI 是Telerik推出的一套based on jQuery 的 Framework,提供了很多控件(Menu .Grid .Combox等...), 底层以Html5 + jQuery 来打造,并且兼容于各大浏览器,包含IE7.IE8.相关介绍可以参考AJAX式数据清单的新选择-Kendo UI Grid. 以下内容参考台湾的黑老大的文章:在ASP.NET MVC 4中使用Kendo UI Grid 建立一个ASP.NET MVC 4专案 使用NuGet安装KendoUIWeb及

ASP.NET MVC 3中301永久重定向不带www域名到带www的域名

使用 ASP.NET 又喜欢跟进新技术的朋友可能已经知道,在 ASP.NET 4.0 中增加了 Response.RedirectPermanent() 方法来实现永久重定向,方法的作用在注释中解释的很清楚:执行从所请求 URL 到所指定 URL 的永久重定向,并提供用于完成响应的选项. 在 ASP.NET MVC 3 项目中,我们可以根据需要来使用以下写法实现永久重定向:  代码如下 复制代码 public ActionResult Index() {     return RedirectP

【初学者指南】在ASP.NET MVC 5中创建GridView

介绍 在这篇文章中,我们将会学习如何在 ASP.NET MVC 中创建一个 gridview,就像 ASP.NET Web 表单中的 gridview 一样.服务器端和客户端有许多可用的第三方库,这些库能够提供所有必需的功能,如 Web 表格中的搜索.排序和分页等.是否包含这些功能,取决于应用的特殊需求,例如在客户端和服务器端提供搜索或其它功能的需求等. 可用的库 以下是一些可用的库和插件: Grid.Mvc MVCGrid.NET PagedList.MVC JQuery.Grid JQuer