在mvc4中多語言建站的例項

2021-09-07 05:56:45 字數 2364 閱讀 3257

環境: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:中英文切換入口。

1  

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");}}

view頁面呼叫直接用函式的方式。如:

5:displayname 的多語言化

重新定義一localdisplayname屬性,他繼承自displaynameattribute

public class localdisplayname : displaynameattribute 

}public string resourcename

public localdisplayname(string defaultname)

public override string displayname }}

在model類上就把display屬性換為localdisplayname

public class account 

[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

}

呼叫方式:@html.labelfor(m => m.username)

實現效果:

大概這樣基本的就實現了, 有個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...