快速业务通道

ASP.NET Web Forms 4.0简介

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-05-20
igateUrl="<%$ RouteUrl:RouteName=Category, category=Accessories %>"
OnLoad="CategoryLink_Load" Text="Accessories"/>
</li>
</ul>
...

注意: 当页面解析器遇到使用字符串 <%$ %> 分隔的表达式时,它会根据字 符串中的表达式创建一个表达式生成器。字符串中冒号 (:) 之前的部分是前缀,它在 Web.config 中定 义。在本例中,RouteUrlExpressionBuilder 的前缀是 RouteUrl。

然后, RouteUrlExpressionBuilder 根据冒号 (:) 右侧的参数生成之前在 RouteTable 中注册的路由,在本例 中为 Category 路由。

8.修改代码,在 Default.aspx.cs 代码隐藏文件中生成类别导航链接,以 使用新定义的路由。为此,在 Solution Explorer 中右键单击 Default.aspx,选择 View Code 并将 CreatePagerLinks 方法的最后两行替换为以下突出显示的代码。

注意:数据库在检索大量结果时,可以方便地将结果划分为不同的页面。页面链接是根据所检索的结 果量动态生成的。

 

本例中要创建的路 由类型为 CategoryAndName。举例来说,/Products/3 是一个可行的链接,其中 Products 是类别, 3 是要检索的页面数。

(代码片段– Web Forms 4.0 实验–创建分页器链接)

C#

private void CreatePagerLinks()
{
for (int i = 1; i  <= this.TotalPages; i++)
    {
HyperLink link = new HyperLink() {  Text = i.ToString() };
if (i == this.SelectedPage)
        {
link.CssClass = "currentPage";
        }

PagerPanel.Controls.Add(link);

string expression = String.Format ("RouteName={0}, category={1}, page={2}", "CategoryAndPage", this.SelectedCategoryName,  i);
link.NavigateUrl = RouteUrlExpressionBuilder.GetRouteUrl(this, expression);
    }
}

注意:通过调用 GetRouteUrl 静态方法,您可以直接在代码隐藏文 件中使用 RouteUrlExpressionBuilder。这样,您可以为路由的参数动态赋值。

任务 3 – 检索路由参数值

在本任务中,您将在每次提交返回时检索类别名称和页面索引 参数。当您现在使用路由时,这些参数将不再出现在 QueryString 集合中。您将使用 Page 类中新定义 的 RouteData 属性,它包含一个键-值集合,其中包括路由的所有参数。

1.打开 Default.aspx.cs 代码隐藏文件。为此,在 Solution Explorer 中右键单击 Default.aspx 并选择 View Code。

2.在 GetCategoryName 和 GetPageIndex 方法中将 Request.QueryString 集合替换为 RouteData.Values 集合。

C#

...
private string  GetCategoryName()
{
string category = RouteData.Values["category"] as  string;
AdventureWorksRepository repository = new AdventureWorksRepository();

if (category != null)
    {
return category;
    }

return repository.GetCategories()[0].Name;
}

private int  GetPageIndex()
{
string page = RouteData.Values["page"] as string;

if (page != null)
return Convert.ToInt32(page);

return 1;
}
...

注意:RouteData 属性的键值集合包含从 URL 中解析的值。

有关更多信息 ,请参见 RouteData 类及其成员。

任务 4 –使用 RouteValueExpressionBuilder 检索路 由值         

在此任务中,您将学习如何直接从 ASP.NET 页面获取路由参数的值。为 了展示此特性,您将添加一些消息到 Default.aspx 中,用于在未找到所请求的产品时显示,或者在请求 页面不在范

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号