一起谈.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中指定

  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-10-26 12:15:06

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

体验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中指定

一起谈.NET技术,ASP.NET MVC 2中使用jQuery UI控件详解

问:我想给我的ASP.NET MVC输入表单添加一个日期选择控件,但模型-视图-控制器(MVC)并没有提供这样的辅助方法,我该如何添加控件? 答:和ASP.NET Web表单不一样,MVC架构没有提供可以在设计面板中拖放的有状态的服务端控件,相反,MVC鼓励使用简单的HTML布局元素和基于数据的标签作为页面布局的要素,功能和最终的布局用客户端JavaScript和CSS样式表控制. MVC提供了一套基于HtmlHelper的扩展方法渲染大部分HTML标签,对于更复杂的功能,你需要自己编写HTML

一起谈.NET技术,Asp.net mvc 2中使用Ajax的三种方式

     在Asp.net MVC中,我们能非常方便的使用Ajax.这篇文章将介绍三种Ajax使用的方式,分别为原始的Ajax调用.Jquery.Ajax Helper.分别采用这三种方式结合asp.net mvc去实现一个史上最简单的留言板.     首先看一下原始的Ajax的调用的:      定义CommentController,代码如下: public class CommentController : Controller{private IList<string> _commen

一起谈.NET技术,ASP.NET MVC 2示例Tailspin Travel UI层分析

Tailspin Travel 是一个旅游预订的应用程序示例,最新版本采用ASP.NET MVC 2技术构建,主要使用 DataAnnotations 验证, 客户端验证和ViewModels,还展示了许多Visual Studio 2010, .NET Framework 4, 和Windows Server AppFabric的技术,参看ASP.NET MVC 2示例Tailspin Travel. Tailspin Travel设计的技术比较多,今天我们来看看界面(UI)上的技术,在UI层

一起谈.NET技术,ASP.NET MVC 2生成动态表单的一种最简单的思路

在BPM.OA等系统中,都会存在一个表单设计器.有些是通过操作gridview来完成一个表单的设计:有些是通过类似VS拖拽的方法完成一个表单的设计.很明显后面一种优越于前面一种.无论是哪种,最后都会产生一些XML之类的表单结构的数据. 这篇文章将讲述,在表单设计器设计好表单之后,在ASP.NET MVC中如何将表单结构的xml转换成实际应用系统中的表单.看下面一个xml文件,我们假设它是由一个表单设计器设计出来的. <?xml version="1.0" encoding=&qu

一起谈.NET技术,ASP.NET MVC功能详解 变身数据展示达人

作为Web开发者,我们经常面对的任务就是将数据通过表格展现给用户.最简单的情景是比如仅将顾客的订单显示出来.然而,更多的数据表格将提供比如排序,分页等更多的丰富的功能. 在ASP.NET的web表单中,GridView控件提供了一种快速简便的方法显示网格中的记录集,并提供像排序.分页.编辑及删除的功能,所有的这些只需写少量的代码就可以实现.在页面加载时,GridView自动HTML中的table标记,让你不需要写任何标签,以及不用去考虑如何显示和将数据绑定到GridView控件.在ASP.NET

一起谈.NET技术,ASP.NET MVC 3 Beta新特性以及.Net开源的趋势----最新译文

NuPack – .NET的开源软件包管理器 NuPack是一个开源的软件包管理器,它使你在项目中能够更加容易的查找.安装和使用.NET 库.它能够和所有的.NET 项目类型很好的一起工作(包括,没有任何限制的,ASP.NET Web Forms和ASP.NET MVC). NuPack 使维护开源项目的开发者(例如, Moq, NHibernate, Ninject, StructureMap, NUnit, Windsor, RhinoMocks, Elmah, 等等) 能够去打包他们的库,

一起谈.NET技术,ASP.NET MVC Membership 权限 漫谈

以前一位同事习惯于使用Membership来进行权限管理,现在随着ASP.NET MVC的引入,采用以前的方法,提出了以下方案: ASP.NET MVC+Membership结合,通过在web.config中进行配置,来管理系统中的权限. 于是,我对这个方案的可行性进行了分析,提出了以下疑点: 在ASP.NET 2.0的Membership中, 在Web.config中是通过物理文件和目录,那么在ASP.NET MVC中,如果在URL中直接输入物理文件和目录,是找不到这个文件的,不知道这种方式还

一起谈.NET技术,ASP.NET MVC 3 Beta初体验之超酷的Chart:3D效果

在前一篇文章:ASP.NET MVC 3 Beta初体验之超酷的Chart中介绍了Chart的使用,但是没有介绍到3D效果.这篇文章将介绍一下Chart的3D效果的展示.声明一点的是:这个Chart控件可能没有一些开源或者不开源,收费或者不收费的组件那般强大,我相信未来这个控件会越来越强大的.废话不多说了,看下如何展示Chart的3D效果. 显示3D的效果,微软给了我们两种解决方案.一种是使用他自带的样式,一种是自己配置一个显示样式的XML. 第一种使用自带的样式:很简单,在上一篇文章中其实有提