![](/img/trans.png)
[英]How to add a line break in ASP.NET Boilerplate menu from Navigation Provider with localization
[英]ASP.NET boilerplate localization
在 ASP.NET Boilerplate 中,我正在更改語言,例如
<a href="/AbpLocalization/ChangeCulture?cultureName=en">English</a>
它在我的本地機器上正常工作,但在測試服務器上不能正常工作。
此外,當我在本地單擊它時,有時會出現內容為空的 abp.message.error。
我有幾個問題:
1) 這個 URL (/AbpLocalization...) 是什么,看起來像一個控制器,但我的代碼中沒有這樣的東西?
2)我怎樣才能找到並調試它?
3)在另一台服務器上可能會發生什么使其崩潰(在測試服務器上單擊按鈕重新加載狀態,但不會更改語言)
解決了! 導致問題的原因是,測試服務器上的數據庫沒有本地數據庫中的一張表,更重要的是:該表包含在通過實體框架傳輸到數據庫的模型中。 將表添加到測試服務器后一切正常。
AbpLocalizationController 在源代碼中位於此處
src/Abp.AspNetCore/AspNetCore/Mvc/Controllers/AbpLocalizationController.cs
這是改變文化代碼:
public virtual ActionResult ChangeCulture(string cultureName, string returnUrl = "")
{
if (!GlobalizationHelper.IsValidCultureCode(cultureName))
{
throw new AbpException("Unknown language: " + cultureName + ". It must be a valid culture!");
}
var cookieValue = CookieRequestCultureProvider.MakeCookieValue(new RequestCulture(cultureName, cultureName));
Response.Cookies.Append(
CookieRequestCultureProvider.DefaultCookieName,
cookieValue,
new CookieOptions {Expires = Clock.Now.AddYears(2)}
);
if (AbpSession.UserId.HasValue)
{
SettingManager.ChangeSettingForUser(
AbpSession.ToUserIdentifier(),
LocalizationSettingNames.DefaultLanguage,
cultureName
);
}
if (Request.IsAjaxRequest())
{
return Json(new AjaxResponse());
}
if (!string.IsNullOrWhiteSpace(returnUrl) && AbpUrlHelper.IsLocalUrl(Request, returnUrl))
{
return Redirect(returnUrl);
}
return Redirect("/"); //TODO: Go to app root
}
如果要調試此代碼,請從 github 存儲庫 fork 項目並將其添加到您的解決方案中。 用這個本地項目引用替換你的 abp dll 引用。
同時你沒有提到錯誤所說的內容。 要了解它,請查看網站日志。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.