asp.net 从资源文件中获取资源内容、获取资源列表
为了能让来自不同文化习惯或使用不同语言作为母语的访客能够阅读我们的网站,则必须为这些读者提供用他们自己的语言查看网页的方法。一种方法是分别用各语言重新创建页面,但这种方法可能需要大量工作量、容易出错并且在更改原始页时很难维护。利用 ASP.NET,可以使创建的页面基于浏览器的首选语言设置或用户显式选择的语言获取内容和其他数据。内容和其他数据指的就是资源,此类数据可以存储在资源文件或其他源中。
在 ASP.NET 网页中,可以将控件配置为从资源获取其属性值。在运行时,资源表达式将被相应资源文件中的资源替换。
关于 asp.net 网站的资源文件,详细地介绍见 MSDN 文档:http://msdn.microsoft.com/zh-cn/teamsystem/ms227427.aspx
需要注意的是,资源文件是 XML 文件,其中包含要转换为不同语言或图像路径的字符串。资源文件包含键/值对,每一对都是一个单独的资源。键名不区分大小写。
可以在 asp.net 网站 或者 web 项目中添加 asp.net 特殊文件夹App_GlobalResources用来放置所有资源文件。资源文件可以有很多语言的版本,一般说来,需要先制作一个通用(Common)版本,然后其他语言以这个通用版本中存在的键名、值和注释作为样板来制作。一组资源应该具有同样的资源类名,并且通用版本直接以资源类名为名称,外加一个 .resx 的后缀作为整个文件的名称。比如,MyResources.resx;其他语言的则以 资源类名.文化名.resx为名称,如中文简体的资源文件可以命名为 MyResources.zh-cn.resx。
下面我要讲的是两个问题:
一、如何正确地从资源文件中获取需要的资源的值;
二、快速地获取资源文件中资源的清单。
对于第一个问题:
使用 <% $ %>标记引用
在 asp.net 网站开发过程中,相信大家都比较熟悉 <% = %> 和 <%# %> 两个服务器标记,它们分别用于在前台页面中显示后台变量的值和绑定数据。在 asp.net,还有另一个标记,平时可能用得不是很多,那就是 "<%$ %>" 标记。它专门用于绑定资源文件中指定资源的值。
如,你需要在前台为用一个 Submit 来触发更新用户个人信息的动作,那么我们需要它 的 value 赋予的意义为“更新个人资料”,英文为"Update the Profile"。
这时,你可以在资源文件中建立名称为 "Update_Profile" 的资源,并在中文版本的文件(如 MyResources.zh-cn.resx)中设置其意义为“更新个人资料”,而在英文版
相关文档:
One of my bank customers planned to roll out a new ASP.NET web application serving as their critical internet banking portal. They faced some weird performance issue in their UAT environment. They noticed the CPU utilization was really high (above 90%) without any fluctuation. After checking ......
在Windows NT中,图形多媒体系统基于层次结构。应用程序与顶层的API(实际上是多个用户模式的系统DLL,比如GDI32.DLL)交互,这些系统DLL最终会通过系统服务调用处于内核模式的系统服务。
NT系统的详细信息可参考《Windows 图形编程》的第一、二章。在Windows Vista中,图形系统已经移出了内核模式,并有自己的空间 ......
//TransmitFile实现下载
protected void Button1_Click(object sender, EventArgs e)
{
/*
微软为Response对象提供了一个新的方法TransmitFile来解决使用Respo ......
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using System.Xml;
namespace jiu ......