在ASP.NET 2.0开发中实现站点地图的本地化(1)
发表于:2007-06-11来源:作者:点击数:
标签:
【51CTO.com独家特稿】一、基于XML的站点地图 以前在Web应用程序中建立导航的方法是在页面上散布大量的超级链接。但当 开发 大型Web工程时,这种简单而原始的方法显得极为臃肿而且力不从心。为此,ASP.NET 2.0引入了一个新的导航系统来解决整个问题。尽管ASP
【51CTO.com独家特稿】一、基于XML的站点地图
以前在Web应用程序中建立导航的方法是在页面上散布大量的超级链接。但当开发大型Web工程时,这种简单而原始的方法显得极为臃肿而且力不从心。为此,ASP.NET 2.0引入了一个新的导航系统来解决整个问题。尽管ASP.NET中的这个新功能非常复杂,但是我们可以从其提供的大量方法属性对之进行全面控制。
这种新的导航系统通过一个XML文件来定义整个站点的导航系统;为此,该XML文件称为“站点地图”。在本文中,我们想略过有关这种基于XML的站点地图的基本讨论(注:本文提供了两个示例工程,其中之一即是有关基于XML显示站点地图),而专注于讨论这种新的站点导航机制的本地化问题,并提供一个简单但完整的示例工程。
通过修改资源文件(.resx)来实现系统的本地化,是实现从桌面应用到ASP.NET应用程序开发的本地化的一种好方法。下面,我们将详细讨论这种方法。
二、为本地化构建站点地图—Web.sitemap文件
可以把本地化指令应用于ASP.NET Web应用程序的页面上,也可以使用相同的思路在Web.sitemap文件中完成本地化任务。
右击“解决方案资源管理器→添加新项…”,在随后的“添加新项”对话框中点选“站点地图”模板,如下图所示:
MILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">图1.通过点选“站点地图”模板创建站点地图文件
为此,我们应该先构建一个Web.sitemap文件,请见下面的程序清单:
<?xml version="1.0" encoding="utf-8" ?>
<siteMap xmlns="http://schemas.microsoft.com/AspNet/SiteMap-File-1.0"
enableLocalization="true">
<siteMapNode title="Home" description="Home" url="~/default.aspx" resourceKey="Home">
<siteMapNode title="Products" description="Our products"
url="~/Products.aspx" resourceKey="Products">
<siteMapNode title="Hardware" description="Hardware choices"
url="~/Hardware.aspx" resourceKey="Hardware"/>
<siteMapNode title="Software" description="Software choices"
url="~/Software.aspx" resourceKey="Software"/>
</siteMapNode>
<siteMapNode title="Services" description="Services we offer"
url="~/Services.aspx" resourceKey="Services">
<siteMapNode title="Training" description="Training classes"
url="~/Training.aspx" resourceKey="Training"/>
<siteMapNode title="Consulting" description="Consulting services"
url="~/Consulting.aspx" resourceKey="Consulting"/>
<siteMapNode title="Support" description="Supports plans"
url="~/Support.aspx" resourceKey="Support"/>
</siteMapNode>
</siteMapNode>
</siteMap>
|
这是一个相当简单的Web.sitemap文件。
【注意】尽管Web.sitemap文件可以引用其他站点地图提供程序或其他目录中的其他站点地图文件以及同一应用程序中的其他站点地图文件,但该文件必须位于应用程序的根目录中。
实现自定义的站点地图提供程序时,如果存储站点地图数据的文件的扩展名不是.sitemap,就会有潜在的安全风险。默认情况下,会将ASP.NET配置为阻止客户端下载具有已知文件扩展名(如.sitemap)的文件。为帮助保护您的数据,可将文件扩展名不是.sitemap的所有自定义站点地图数据文件放入App_Data文件夹中。