asp.net 4.0 新特性之url路由, 自定義CacheProvider, 新增的表達式
, QueryExtender控件, 其它新特性
介紹
asp.net 4.0 的新增功能
* 在 web form 中做 url 路由
* 通過實現自定義的 CacheProvider ,來實現自定義的頁面緩存邏輯
* 新增的表達式 <%: expression %> 相當於 <%= HttpUtility.HtmlEncode(expression) %>
* 控件 QueryExtender,對數據源控件獲得的數據做再檢索
* 其它新特性
示例
1、web form 中的 url 路由的 demo
Global.asax.cs
代碼
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.SessionState;
using System.Web.Routing;
namespace AspDotNet
{
public class Global : System.Web.HttpApplication
{
protected void Application_Start(object sender, EventArgs e)
{
// 關於 Routing 可以參考以前寫的 http://www.cnblogs.com/webabcd/archive/2009/04/21/1440149.html
// 其中 PageRouteHandler 類的作用是將 URL 路由的功能集成到 Web Form 中
RouteTable.Routes.Add("myRoute", new Route("user/{userName}/{age}", new PageRouteHandler ("~/UrlRouting/Default.aspx")));
/* 對應的配置如下,在 machine.config 中
<system.web>
<httpmodule>
<add name="RoutingModule" type="System.Web.Routing.UrlRoutingModule"/>
</httpmodule>
<system.web>
*/
}
}
}
UrlRouting/Default.aspx
代碼
<%@ Page Title="" Language="C#" MasterPageFile="~/Site.Master" AutoEventWireup="true"
CodeBehind="Default.aspx.cs" Inherits="AspDotNet.UrlRouting.Default" %>
<asp:Content ID="Content1" ContentPlaceHolderID="head" runat="server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="server">
<!--
在頁面上獲取 url 路由而來的數據的方法
配合以下邏輯的路由規則是:"user/{userName}/{age}"
-->
<asp:Literal runat="server" Text="<%$ RouteValue:userName%>" />
<br />
<asp:Literal runat="server" Text="<%$ RouteValue:age%>" />
<!--
另外,對於數據源控件來說,也多了一種參數類型 RouteParameter
-->
</asp:Content>
<%--
對應的配置如下,在 machine.config 中
<system.web>
<compilation debug="true" targetFrameworkMoniker=".NETFramework,Version=v4.0">
<expressionBuilders>
<add expressionPrefix="RouteValue" type="System.Web.Compilation.RouteValueExpressionBuilder" />
</expressionBuilders>
</compilation>
<system.web>
--%>