這是我的控制器(我已刪除爲簡單起見,完整的代碼)文化無關的代碼的工作方式不同,當文化改變
public IActionResult Settings(SettingsViewModel model, ICollection<IFormFile> file)
{
ApplicationUser user = db.Users.FirstOrDefault(u => u.NormalizedUserName == User.Identity.Name.ToUpper());
return View(model);
}
這是我的路由:
app.UseMvc(routes =>
{
routes.MapRoute(
name: "default",
template: "{culture=fa-IR}/{controller=Names}/{action=GirlAndBoy}/{p1=A}/{p2=1}");
});
視圖工作優秀文化明智並翻譯成全部三種('en-us','tr-tr','fa-ir')語言。
但問題是,用戶登錄並在'en-us'和'fa-ir'代碼正常工作,但在'tr-tr'user
由於以下代碼而爲空:
ApplicationUser user = db.Users.FirstOrDefault(u => u.NormalizedUserName == User.Identity.Name.ToUpper());
請注意,即使文化是'tr-tr'追蹤顯示User.Identity.Name.ToUpper()
具有正確的值。
我把'User.Identity.Name.ToUpper()'改成''User.Identity.Name.Normalize()',現在它工作正常。我的問題解決了,但我仍然想知道這與文化有什麼關係? –