ASP.NET?MVC實現(xiàn)本地化和全球化
在開發(fā)多語言網(wǎng)站時,我們可以為某種語言創(chuàng)建一個資源文件,根據(jù)瀏覽器所設(shè)置的不同語言偏好,讓運行時選擇具體使用哪個資源文件。資源文件在生成程序集的時候被嵌入到程序集。
本篇體驗,在ASP.NET MVC中實現(xiàn)全球化和本地化,比如,當瀏覽器選擇英文,就讓某些頁面元素顯示英文;當瀏覽器選擇用中文瀏覽,則顯示中文。
使用Visual Studio 2013創(chuàng)建一個無身份驗證的MVC項目。
創(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方法中添加一個有關(guān)Student的強類型視圖,并選擇默認的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)在,我們希望,當瀏覽器選擇英語的時候,頁面元素都顯示英文。
在解決方案下創(chuàng)建一個名稱為MyResources的類庫。
創(chuàng)建有關(guān)中文的資源文件,并把訪問修飾符設(shè)置為public:
創(chuàng)建有關(guān)英文的資源文件,也把訪問修飾符設(shè)置為public:
生成類庫。
在MVC項目中引用該類庫。
修改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強類型視圖頁中,修改如下:
<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>
運行MVC項目,出現(xiàn)報錯。
修改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è)置中選擇英語。
刷新后,效果如下:
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,謝謝大家對腳本之家的支持。如果你想了解更多相關(guān)內(nèi)容請查看下面相關(guān)鏈接
- ASP.NET?MVC使用Identity增刪改查用戶
- ASP.NET MVC把數(shù)據(jù)庫中枚舉項的數(shù)字轉(zhuǎn)換成文字
- ASP.NET MVC限制同一個IP地址單位時間間隔內(nèi)的請求次數(shù)
- ASP.NET?MVC使用異步Action的方法
- ASP.NET?MVC遍歷驗證ModelState的錯誤信息
- ASP.NET?MVC使用Session會話保持表單狀態(tài)
- ASP.NET?MVC實現(xiàn)下拉框多選
- ASP.NET?MVC使用Quartz.NET執(zhí)行定時任務(wù)
- ASP.NET MVC視圖頁使用jQuery傳遞異步數(shù)據(jù)的幾種方式詳解
- ASP.NET?MVC通過勾選checkbox更改select的內(nèi)容
相關(guān)文章
AspNetPager分頁控件定義及應(yīng)用樣式示例介紹
AspNetPager分頁控件想必大家并不陌生吧,在本文將為大家詳細介紹下此控件的css樣式定義,感興趣的朋友可以參考下2013-10-10asp.net Silverlight應(yīng)用程序中獲取載體aspx頁面參數(shù)
有時候SL應(yīng)用中需要使用由aspx頁面中傳遞過來的參數(shù)值,此時通常有兩種方法獲取2009-11-11Asp.Net二級域名共享Forms身份驗證、下載站/圖片站的授權(quán)訪問控制
我們平時一般在做圖片或者文件下載權(quán)限控制的時候基本都是控制到下載頁面的,當你的下載地址暴露后,瀏覽者就直接可以通過文件地址進行下載了,這時候也就出現(xiàn)了我們常說的盜鏈2012-02-02VS2015自帶LocalDB數(shù)據(jù)庫用法詳解
這篇文章主要為大家詳細介紹了VS2015自帶LocalDB數(shù)據(jù)庫的用法,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-06-06ASP.NET檢測到不安全 Request.Form 值解決方案匯總
這篇文章主要介紹了ASP.NET檢測到不安全 Request.Form 值解決方案匯總 ,十分的全面,需要的朋友可以參考下2015-06-06