簡體   English   中英

ASP.NET MVC屬性路由和本地化

[英]ASP.NET MVC Attribute routing and localization

嘗試在URI中設置與文化相結合的屬性路由。

我想以這種方式設置我的路線:

www.domain.com/{culture}/{controller}/{action}...and some params and www.domain.com/{controller} / {action} ...(相同,但未指定文化)

問題是我不知道如何以這種方式識別用戶(瀏覽器)的默認文化。

據我所知,使用屬性路由時我只有兩個選項:

  • 可選參數{culture?}
  • 默認值{culture = en}

但是當它沒有直接在URI中提供時,兩者都不足以獲得用戶的文化

如果URL不包含culture參數,您可以使用Accept-Language HTTP標頭的值。

它可以通過Request.UserLanguages[]屬性訪問,因此如果您的客戶端是瀏覽器,您肯定可以通過以下方式檢索客戶端的文化:

if (HttpContext.Current != null && HttpContext.Current.Request.UserLanguages != null && HttpContext.Request.UserLanguages.Any())
{
    var culture = CultureInfo.GetCultureInfo(Request.UserLanguages[0]);   
}

有關此標題的詳細信息,請參閱W3C文檔部分14.4

更新

看看Rick Strahl 撰寫的這篇文章

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM