在Global.asax如此撰写之后,当使用者在网址列键入:http://localhost:1031/Search/AK47
网页(应用程序主控权)将被导引到WebForm1.aspx页面,而在该页面中则可以透过底下的方式来取得参数ProductName『AK47』:
以下为引用的内容:
view plaincopy to clipboardprint? protected void Page_Load(object sender, EventArgs e) { Response.Write("Searching Product Name : " + Page.RouteData.Values["ProductName"]); } protected void Page_Load(object sender, EventArgs e) { Response.Write("Searching Product Name : " + Page.RouteData.Values["ProductName"]); }
|
这样的设计方式,果然是方便容易许多,别小看这样的机制,这让我们开发大型的Web应用程序变为可能,配合我们后面要介绍的ASP.NET 4当中的DynamicData技术,我们得以轻易的开发出单一的一张.aspx网页(一支程序),即可维护后端Schema不同的各种数据表的。不像过去ASP.NET 2.0时代,若后端数据库有许多数据表要处理,我们几乎得要为每一个数据表建立独立的一张.aspx维护页面,即便每一张.aspx网页上的行为与程序代码逻辑几乎完全一样(CRUD)。
更有趣的是,配合URL Routing机制的普及化,连过去我们熟悉的DataSource控件都增加了一个RouteParameter来共襄盛举,如今ASP.NET 4.0 Web Forms可说是对URL Routing机制全面支持了:
以下为引用的内容:
view plaincopy to clipboardprint? <asp:LinqDataSource ID="LinqDataSource1" runat="server" ContextTypeName ="UrlRouting.DataClasses1DataContext" EntityTypeName ="" TableName="Customers" Where="CompanyName == @CompanyName"> <WhereParameters> <asp:RouteParameter Name="CompanyName" RouteKey ="CompanyName" Type="String" /> </WhereParameters> </asp:LinqDataSource> <asp:LinqDataSource ID="LinqDataSource1" runat="server" ContextTypeName= "UrlRouting.DataClasses1DataContext" EntityTypeName ="" TableName="Customers" Where="CompanyName == @CompanyName"> <WhereParameters> <asp:RouteParameter Name="CompanyName" RouteKey ="CompanyName" Type="String" /> </WhereParameters> </asp:LinqDataSource>
|
|