ASP.NET MVC 3.0 新特性之View
来源:广州中睿信息技术有限公司官网
发布时间:2012/10/21 23:25:16 编辑:admin 阅读 372
asp.netmvc之asp.netmvc3.0新特性之View(Razor):Razor的语法Razor与ModelRazor与布局示例1、Razor概述RazorDemoController.c

asp.net mvc 之 asp.net mvc 3.0 新特性之 View(Razor):

  • Razor 的语法
  • Razor 与 Model
  • Razor 与布局



示例
1、Razor 概述
RazorDemoController.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
 
using MVC30.Models;
 
namespace MVC30.Controllers
{
    public class RazorDemoController : Controller
    {
        public ActionResult Summary()
        {
            return View();
        }
    }
}


Summary.cshtml

@{
    ViewBag.Title = "Razor 概述";
}
 
<p>
使用 Razor 之前,要在 Web.Config 中做如下配置
<br />
<textarea rows="20" style="width: 100%">
  <configSections>
    <sectionGroup name="system.web.webPages.razor" type="System.Web.WebPages.Razor.Configuration.RazorWebSectionGroup, System.Web.WebPages.Razor, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
      <section name="host" type="System.Web.WebPages.Razor.Configuration.HostSection, System.Web.WebPages.Razor, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
      <section name="pages" type="System.Web.WebPages.Razor.Configuration.RazorPagesSection, System.Web.WebPages.Razor, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
    </sectionGroup>
  </configSections>
 
  <system.web.webPages.razor>
    <host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
    <pages pageBaseType="System.Web.Mvc.WebViewPage">
      <namespaces>
        <add namespace="System.Web.Mvc" />
        <add namespace="System.Web.Mvc.Ajax" />
        <add namespace="System.Web.Mvc.Html" />
        <add namespace="System.Web.Routing" />
      </namespaces>
    </pages>
  </system.web.webPages.razor>
</textarea>
</p>
 
<p>
    View 在每次 Render 之前都会先执行 _ViewStart.cshtml 中的代码
</p>



2、Razor 语法简介
RazorDemoController.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
 
using MVC30.Models;
 
namespace MVC30.Controllers
{
    public class RazorDemoController : Controller
    {
        public ActionResult Syntax()
        {
            return View();
        }
    }
}

 
Syntax.cshtml

@{
    ViewBag.Title = "Razor 语法";
}
 
<p>
    使用@符号加{},直接在 html 页面中写 C#
    <br />
    @{ var currentTime = DateTime.Now; } @* 相当于 <% Htmlvar currentTime = DateTime.Now; %> *@
    @currentTime.ToString("yyyy-MM-dd")
</p>
 
<p>
    使用@符号,直接在 html 页面中写 C# 并输出结果
    <br />
    当前 URL:
    @Request.Url @* 相当于 <%= Request.Url %> *@
    <br />
    当前 URL:
    @{
        @Request.Url;
    }
</p>
 
<p>
    想输出字符@怎么办?,那就@@
    <br />
    webabcd@@abc.com
</p>
 
<p>
    在 Razor 中写服务端注释(客户端不可见)
    @* code *@
</p>
 
<p>
    Razor 自带的类型转换方法
    <br />
    例:AsInt(), IsInt(), AsBool(), IsBool(), AsFloat(), IsFloat(), AsDecimal(), IsDecimal(), AsDateTime(), IsDateTime()
    <br />
    类似 AsInt() 的方法会有一个重载方法 AsInt(int defaultValue),用于当转换失败时返回指定的默认值
    @{
        var tmp = "2/14/1980";
        var date = tmp.AsDateTime();
    }
    @date.ToString("yyyy-MM-dd")
</p>
 
<p>
    输出文本的方法
    <br />
    @*
联系我们CONTACT 扫一扫
        <text></text>
愿景:成为最专业的软件研发服务领航者
中睿信息技术有限公司 广州•深圳 Tel:020-38931912 务实 Pragmatic
广州:广州市天河区翰景路1号金星大厦18层中睿信息 Fax:020-38931912 专业 Professional
深圳:深圳市福田区车公庙有色金属大厦509~510 Tel:0755-25855012 诚信 Integrity
所有权声明:PMI, PMP, Project Management Professional, PMI-ACP, PMI-PBA和PMBOK是项目管理协会(Project Management Institute, Inc.)的注册标志。
版权所有:广州中睿信息技术有限公司 粤ICP备13082838号-2