ASP.NET?MVC實(shí)現(xiàn)本地化和全球化
在開發(fā)多語言網(wǎng)站時(shí),我們可以為某種語言創(chuàng)建一個(gè)資源文件,根據(jù)瀏覽器所設(shè)置的不同語言偏好,讓運(yùn)行時(shí)選擇具體使用哪個(gè)資源文件。資源文件在生成程序集的時(shí)候被嵌入到程序集。
本篇體驗(yàn),在ASP.NET MVC中實(shí)現(xiàn)全球化和本地化,比如,當(dāng)瀏覽器選擇英文,就讓某些頁面元素顯示英文;當(dāng)瀏覽器選擇用中文瀏覽,則顯示中文。
使用Visual Studio 2013創(chuàng)建一個(gè)無身份驗(yàn)證的MVC項(xiàng)目。
創(chuàng)建如下的Model:
public class Student
{
public int Id { get; set; }
[Display(Name="姓名")]
[Required(ErrorMessage="必填")]
public string Name { get; set; }
[Display(Name = "年齡")]
[Required(ErrorMessage = "必填")]
public int Age { get; set; }
}生成解決方案。
在HomeController中Index方法中添加一個(gè)有關(guān)Student的強(qiáng)類型視圖,并選擇默認(rèn)的Create模版。大致如下:
@model GlobalAndLocal.Models.Student
<h2>Index</h2>
<div class="form-group">
@Html.LabelFor(model => model.Name, new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(model => model.Name)
@Html.ValidationMessageFor(model => model.Name)
</div>
</div>
<div class="form-group">
<div class="col-md-offset-2 col-md-10">
<input type="submit" value="創(chuàng)建" class="btn btn-default" />
</div>
</div>
現(xiàn)在,我們希望,當(dāng)瀏覽器選擇英語的時(shí)候,頁面元素都顯示英文。
在解決方案下創(chuàng)建一個(gè)名稱為MyResources的類庫(kù)。
創(chuàng)建有關(guān)中文的資源文件,并把訪問修飾符設(shè)置為public:

創(chuàng)建有關(guān)英文的資源文件,也把訪問修飾符設(shè)置為public:

生成類庫(kù)。
在MVC項(xiàng)目中引用該類庫(kù)。
修改Student類如下:
public class Student
{
public int Id { get; set; }
[Display(Name=MyResources.Resource.Name)]
[Required(ErrorMessage=MyResources.Resource.NameRequiredError)]
public string Name { get; set; }
[Display(Name = MyResources.Resource.Age)]
[Required(ErrorMessage = MyResources.Resource.AgeRequiredError)]
public int Age { get; set; }
}在Index強(qiáng)類型視圖頁中,修改如下:
<h2>@MyResources.Resource.IndexHeader</h2>
<div class="form-group">
@Html.LabelFor(model => model.Name, new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(model => model.Name)
@Html.ValidationMessageFor(model => model.Name)
</div>
</div>
<div class="form-group">
<div class="col-md-offset-2 col-md-10">
<input type="submit" value="@MyResources.Resource.Submit" class="btn btn-default" />
</div>
</div> 運(yùn)行MVC項(xiàng)目,出現(xiàn)報(bào)錯(cuò)。

修改Student類如下:
public class Student
{
public int Id { get; set; }
[Display(Name="Name", ResourceType=typeof(MyResources.Resource))]
[Required(ErrorMessageResourceName = "NameRequiredError", ErrorMessageResourceType = typeof(MyResources.Resource))]
public string Name { get; set; }
[Display(Name = "Age", ResourceType = typeof(MyResources.Resource))]
[Required(ErrorMessageResourceName = "AgeRequiredError", ErrorMessageResourceType = typeof(MyResources.Resource))]
public int Age { get; set; }
}最后,還需要在Web.config中設(shè)置如下:
<system.web>
......
<globalization culture="auto" uiCulture="auto" enableClientBasedCulture="true"></globalization>
</system.web>在chrome瀏覽器語言設(shè)置中選擇英語。

刷新后,效果如下:

以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對(duì)腳本之家的支持。如果你想了解更多相關(guān)內(nèi)容請(qǐng)查看下面相關(guān)鏈接
- ASP.NET?MVC使用Identity增刪改查用戶
- ASP.NET MVC把數(shù)據(jù)庫(kù)中枚舉項(xiàng)的數(shù)字轉(zhuǎn)換成文字
- ASP.NET MVC限制同一個(gè)IP地址單位時(shí)間間隔內(nèi)的請(qǐng)求次數(shù)
- ASP.NET?MVC使用異步Action的方法
- ASP.NET?MVC遍歷驗(yàn)證ModelState的錯(cuò)誤信息
- ASP.NET?MVC使用Session會(huì)話保持表單狀態(tài)
- ASP.NET?MVC實(shí)現(xiàn)下拉框多選
- ASP.NET?MVC使用Quartz.NET執(zhí)行定時(shí)任務(wù)
- ASP.NET MVC視圖頁使用jQuery傳遞異步數(shù)據(jù)的幾種方式詳解
- ASP.NET?MVC通過勾選checkbox更改select的內(nèi)容
相關(guān)文章
ASP.NET MVC5網(wǎng)站開發(fā)之展示層架構(gòu)(五)
這篇文章主要為大家詳細(xì)介紹了ASP.NET MVC5網(wǎng)站開發(fā)之展示層架構(gòu),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-08-08
.Net極限生產(chǎn)力之分表分庫(kù)全自動(dòng)化Migrations?Code-First
這篇文章主要介紹了.Net極限生產(chǎn)力之分表分庫(kù)全自動(dòng)化Migrations?Code-First,輕量級(jí)針對(duì)分表分庫(kù)讀寫分離的解決方案,具有零依賴、零學(xué)習(xí)成本、零業(yè)務(wù)代碼入侵適配2022-07-07
.NET開發(fā)基礎(chǔ):從簡(jiǎn)單的例子理解泛型 分享
.Net開發(fā)基礎(chǔ)系列文章,對(duì)自己之前寫過的代碼備忘,如能給人予幫助,不甚榮幸。個(gè)人能力有限,如有差錯(cuò)或不足,請(qǐng)及時(shí)指正。2013-06-06
ASP.Net 請(qǐng)求響應(yīng)流程簡(jiǎn)述
ASP.Net 請(qǐng)求響應(yīng)流程簡(jiǎn)述,需要的朋友可以參考下。2012-01-01
.Net?Core基于ImageSharp實(shí)現(xiàn)圖片縮放與裁剪
這篇文章介紹了.Net?Core基于ImageSharp實(shí)現(xiàn)圖片縮放與裁剪的方法,文中通過示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-06-06
寫一個(gè)含數(shù)字,拼音,漢字的驗(yàn)證碼生成類
本文和大家分享的是一個(gè)集成1:小寫拼音;2:大寫拼音;3:數(shù)字;4:漢字的驗(yàn)證碼生成類。本章例子也會(huì)有一個(gè)mvc使用驗(yàn)證碼校驗(yàn)的場(chǎng)景。具有一定的參考價(jià)值,下面跟著小編一起來看下吧2017-01-01
.NET程序調(diào)試技巧(一):快速定位異常的一些方法
這篇文章主要介紹了.NET程序調(diào)試技巧(一):快速定位異常的一些方法,本文講解了定位本機(jī)異常、在客戶環(huán)境定位.net程序異常兩方面的內(nèi)容,需要的朋友可以參考下2015-06-06
如何在不同.net版本實(shí)現(xiàn)單點(diǎn)登錄
經(jīng)過研究,重寫實(shí)現(xiàn)了一個(gè)可以在不同.net版本中實(shí)現(xiàn)單點(diǎn)登錄的簡(jiǎn)單方法?,F(xiàn)在和大家分享一下,不足之處還望見諒2013-07-07

