Я предполагаю, что вы запрашиваете его в контексте кэширования вывода, поэтому простой подход заключается в использовании VaryByCustom
. Например,
<%@ OutputCache VaryByCustom="Culture" ... %>
И в global.asax
public override string GetVaryByCustomString(HttpContext Context, string Custom)
{
if (Custom == "Culture")
{
//return culture specific string
return Context.Request.UserLanguages[0];
}
return base.GetVaryByCustomString(Context, Custom);
}
Реализация будет зависеть от того, как вы отслеживаете культуру текущего пользователя. Например, вы можете использовать переменную сеанса (или данные профиля), поэтому вам нужно вернуть культуру текущего пользователя на основе переменной сеанса и т. Д.
Из SEO дружественного (может иметь значение, если ваш веб-сайт ориентирован на контент), вы можете захотеть иметь информацию о культуре как часть вашего URL-адреса. Например,
<%@ OutputCache ... varybyparam="Culture" %>
http://www.yourdomain.com/somepage.aspx?Culture=en
http://www.yourdomain.com/somepage.aspx?Culture=fr