文章导航PC6首页软件下载单机游戏安卓资源苹果资源

pc软件新闻网络操作系统办公工具编程服务器软件评测

安卓新闻资讯应用教程刷机教程安卓游戏攻略tv资讯深度阅读综合安卓评测

苹果ios资讯苹果手机越狱备份教程美化教程ios软件教程mac教程

单机游戏角色扮演即时战略动作射击棋牌游戏体育竞技模拟经营其它游戏游戏工具

网游cf活动dnf活动lol周免英雄lol礼包

手游最新动态手游评测手游活动新游预告手游问答

您的位置:首页技术开发.Net 专栏 → ASP.NET MVC应用程序的本地化、单元测试

ASP.NET MVC应用程序的本地化、单元测试

时间:2009/7/10 8:21:00来源:本站整理作者:我要评论(0)

很多使用 ASP.NET 传统 WebForm 表单技术的 web 开发者,对微软新的开源 ASP.NET 扩展很感兴趣,这个新的扩展称为 ASP.NET MVC。对于软件设计,将用户界面(视图)、运行逻辑(控制器)和数据(模型)分割开来的理念具有很多优点。

       其一,这种分割,虽然比通常情况要求投入稍多的工作,但有助于保持应用程序的可维护性。另一个优点是它能够更好地对你的代码进行单元测试。framework 框架(以及它的 Visual Studio 内置包)可帮助你创建单元测试结构,例如,以从控制器的方式创建;而你的任务就是编写实际的测试代码。ASP.NET MVC 1.0 刚刚推出才三个月,因此要在行业内获得较好的应用还需要时间。不过,无论你使用传统的 WebForm 表单技术还是 ASP.NET MVC,某些要求仍将是不变的:你需要对用户界面进行测试、本地化以及进行细节调整。在本文中,我们将学习使用不同的方式对 ASP.NET MVC 应用程序进行单元测试,如何对多种语言进行本地化,以及在最后,学习如何在用户界面中添加 AJAX 触控,其中的用户界面使用 MVC 项目中的视图实现。

从本地化开始

对于网页应用程序,创建多种语言的用户界面并不是什么新问题。事实上,ASP.NET 从最早的版本开始就内置了对本地化的支持。例如,你可能使用用户局部或全局资源,并在控制和/或 .aspx 文件中使用 ﹤%$ %﹥ 构造进行相关的引用。ASP.NET MVC 应用程序中的视图通常是常规的 .aspx 文件,因此你可以使用与 MVC 应用程序中完全相同的方法(参见图 1)。

ASP.NET MVC 应用程序的缺省外观和布局

图 1. ASP.NET MVC 应用程序的缺省外观和布局。

除了这种传统的本地化方法,你还可以将这种逻辑添加到控制器类中。由于使用 ﹤%$ %﹥ 是一种有点枯燥的方法,你可以使用该构造,根据当前所用的语言,从控制器返回不同的视图。这是非常有用的,尤其,当不同语言版本的视图不必保持一致时。例如,视图的英文版比法语版具有更好的扩张性。

下面,我们看看实际操作中的这两种选择。假设你开始创建了一个简单的 ASP.NET MVC 应用程序,尚未进行任何定制。Visual Studio 缺省创建的应用程序结构包含 Home 和 Account 控制器。例如,如果需要对 Home/About 文本进行本地化,你可以按照以下方式进行操作。

首先,你可以使用传统的本地化方法:使用资源。例如,要使用全局资源,你需要将 App_GlobalResources 文件夹添加到你的解决方案中。在 Visual Studio 的解决方案管理器(Solution Explorer)中右键点击项目节点,选择 Add/Add ASP.NET Folder/App_GlobalResources 。这样就可以创建所需的文件夹。

下一步是添加资源文件。在解决方案管理器,右键点击新创建的文件夹,在弹出菜单中选择 Add/New Item。这将打开 Add New Item 对话框,从中选择资源文件(Resources File )图标。为资源文件命名之后,单击 OK,Visual Studio 将会将它添加到你的项目中。然后,你可以在显示的表格中键入资源字符串(图 2)。使用资源时,对于在应用程序中进行本地化的每个字符串,你需要指定一个标识符。

在ASP.NET MVC应用程序中使用资源字符串进行本地化 

图 2. 在 ASP.NET MVC 应用程序中使用资源字符串进行本地化。


在开始对应用程序进行本地户之前,指定容易识别的字符串是一个好习惯,因为在试图页面中引用字符串时,你需要这些标识符。另外需记住,许多字符串对于每个页面都是唯一的,因此可能存在多个字符串,你可以在多个视图中使用它们,有时需要标识符名称能够反应这种情况。引用本地化的字符串很简单:你可以使用 ASP.NET 2.0 中引入的 ﹤%$ Resources %﹥构造。例如,在 MyResources.resx 资源文件中有一个名为 HelloWorldText 的字符串,下面这段 .aspx 文件中代码,可以根据用户的首选语言,正确地转换为本地化字符串:

 ﹤asp:Literal ID="Literal1" runat="server"
Text="﹤%$ Resources: MyResources, HelloWorldText %﹥" /﹥

关于 ASP.NET MVC 查找正确的本地化版本,framework 框架使用专业的文件命名规则。MyResources.resx 资源文件包含相关语言的字符串,该语言被认为是该应用程序的初始语言。如果用户的浏览器未指定语言,或者你没有在代码中指定一个语种,那么将使用初始语言字符串。不过,如果用户选择的语言为德语 那么该语言的首字母所写“de”将添加到资源文件名称后:MyResources.de.resx。其他语言也一样,例如 MyResources.es.resx  文件中包含西班牙语字符串。对于本地化,你可以还想要在 .aspx 文件的 @Page 标签中添加专用指令。比如,想要自动检测用户浏览器语言设置,你可以在该标签(指定缺省语言的冒号之后)中添加 UICulture="

相关视频

    没有数据

相关阅读 ie6下面asp.net mvc3 部署应用程序在asp.net mvc中实现右键菜单和简单的分页教程ASP.NET中MVC框架模式方法如何实现分享ASP.NET 2.0 中保护机密数据ASP.NET配置文件Web.configASP.NET 2.0 AJAX中Webservice调用方法ASP.NET 的安全认证实现ASP.NET生成随机密码功能

文章评论
发表评论

热门文章 没有查询到任何记录。

最新文章 什么是.NET中的TDD?ASP.NET AJAX入门简介 WebMatrix入门教程VC++2008中如何调用GetOpenFileName打开文件PlaySound函数在VC++6.0中如何播放音乐及声请问VC++回调函数怎么用

人气排行 嵌入式实时操作系统VxWorks入门教程ArrayList 与 string、string[] 的转换C#遍历整个文件夹及子目录的文件代码WebMatrix入门教程asp.net判断文件或文件夹是否存在c#判断数据NULL值的方法vc++6.0怎么写Windows简单窗口代码.net解决数据导出excel时的格式问题