0
私のAsp.Net MVCアプリケーションでは、ユーザーは別のシステムから来ており、私は以下のようにログインしています。Asp.Net MVC手動でキャッシュをクリアせずにリソース値を変更する
IAccount account = null;
if (userType == UserType.SystemUser)
account = _accountService.CheckSystemUser(userId);
if (userType == UserType.Employee)
account = _accountService.CheckEmployee(userId);
if (account == null) throw new Exception(ErrorMessages.UserNotFound);
var roles = account.Roles.ToArray();
var principalModel = new CustomPrincipalViewModel
{
UserId = account.UserId.ToString(),
FullName = account.FullName,
Roles = roles,
Language = account.Language
};
var userData = JsonConvert.SerializeObject(principalModel);
var ticket = new FormsAuthenticationTicket(1, principalModel.FullName, DateTime.Now, DateTime.Now.AddMinutes(30), false, userData);
var encryptedTicket = FormsAuthentication.Encrypt(ticket);
var cookie = new HttpCookie(FormsAuthentication.FormsCookieName, encryptedTicket);
Response.Cookies.Add(cookie);
SetCulture(account.Language.CultureCode);
return Json(new { isSuccess = true, userFullName = account.FullName });
このような現在の培養物をSetCulture
方法で設定する。
private void SetCulture(string culture)
{
culture = CultureHelper.GetImplementedCulture(culture);
var cookie = Request.Cookies["_culture"];
if (cookie != null)
{
cookie.Value = culture;
cookie.Expires = DateTime.Now.AddYears(1);
}
else
{
cookie = new HttpCookie("_culture")
{
Value = culture,
Expires = DateTime.Now.AddYears(1)
};
}
Response.Cookies.Add(cookie);
}
私の閲覧ページ私は以下のようなリソースファイルからテキスト値を設定しています。
<span class="pageButton"> @Global.Cancel </span>
しかし、私は他のシステムからユーザーの言語を変更し、私のシステムに再度ログインしたときに、すべてのテキストは、前の言語にまだあります。 Ctrl + F5でページを更新した後、すべてが真の言語で表示されます。
キャッシュを手動でクリアせずにページテキストを新しい言語で読み込む方法はありますか?