環境:vs2012 asp.net mvc4.
實現方式:resource 資源檔案,根據路由規則中lang引數來判斷載入哪種語言方式
在網上找到了相關資料,順便自己做了個練習,新建工程之類的步驟就免了,該注意的地方說明下,記著方便下次使用。
1:新增資源檔案,記得設定資源檔案的訪問模式為public,不然預設是internal,外面會訪問不到:
2:新增路由規則,記得加在default路由規則的前面,否則新規則沒用,詳細原因請參考這篇文章
1 routes.add(newroute(2 "///", 3 new routevaluedictionary(new), 9 new multilangroutehandler()//這個類主要是通過gethttphandler來取得當前lang的值 10 ));
1 public classmultilangroutehandler : mvcroutehandler 11 }3:中英文切換入口。
1view頁面呼叫直接用函式的方式。如:2 @ 7 @html.actionlink("中文", action, new , new ) 8 @html.actionlink("english", action, new , new ) 9 div>
4:介面上普通文字的多語言
其實我有按照上面的那篇文章寫測試程式,但是寫死的資源檔案並沒有根據中英文來切換,我都不知道是不是**有問題,悶~,後來mvc群裡面的朋友(無情水)介紹另外一篇文章,我參照著改寫了下,在此說聲ths...
public static class langhelper
//js定義多語言彈出框
public static string langoutjsvar(this htmlhelper htmlhelper, string key) = ''", key, p.getvalue(null, null).tostring());
else
return string.format("var = ''", key, "undefined");}}
5:displayname 的多語言化
重新定義一localdisplayname屬性,他繼承自displaynameattribute
public class localdisplayname : displaynameattribute在model類上就把display屬性換為localdisplayname}public string resourcename
public localdisplayname(string defaultname)
public override string displayname }}
public class account呼叫方式:@html.labelfor(m => m.username)[required]
[localdisplayname("password", resourcename = "pwddisplay")]
public string pwd
[required]
[compare("pwd",errormessageresourcename="confirmpwderrordisplay")]
[localdisplayname("confirm password", resourcename = "confirmpwddisplay")]
public string confirmpwd
[required]
[localdisplayname("remember", resourcename = "remdisplay")]
public bool rememberme
}
實現效果:
大概這樣基本的就實現了, 有個errormessage的還沒整好,有空再來寫。有不對的地方大家給予指正,謝謝!
如果是要寫資料庫的文字,應該怎麼實現多語言呢?有什麼好的方式,請教下。
來源:
MVC4多語言IHttpModule實現
最近專案需要多語言環境了.mymodule類的具體實現 using system using system.collections.generic using system.globalization using system.linq using system.threading using sy...
mvc3中多語言小例子
1,新建專案glo 2,寫basecontroler,別的controler繼承basecontroler 3,新增資源檔案 此處得注意下,資料夾resources跟下面resource檔名可以隨便取,但後面的中文,英文需要按照這個格式,那個可以在中對照著找 4,在頁面中使用 5,看下效果 接著在網...
在MVC 4 中使用自定義Membership
在web.config中配置了memshipprovider後,執行始終報個錯 說明 在處理向該請求提供服務所需的配置檔案時出錯。請檢查下面的特定錯誤詳細資訊並適當地修改配置檔案。分析器錯誤訊息 無法在應用程式的預啟動初始化階段呼叫此方法。源錯誤 行 42 行 43 折騰了很久,終於找到了答案 ad...