C# 资源在asp.net MVC 5中不工作
我在asp.net MVC 5中使用语言时遇到问题。我编写了一个基本控件来根据cookie更改区域性设置。 代码在视图上工作,但在控制器或模型数据注释上都不工作 基本控制器是:C# 资源在asp.net MVC 5中不工作,c#,asp.net-mvc,resources,multilingual,C#,Asp.net Mvc,Resources,Multilingual,我在asp.net MVC 5中使用语言时遇到问题。我编写了一个基本控件来根据cookie更改区域性设置。 代码在视图上工作,但在控制器或模型数据注释上都不工作 基本控制器是: public class BaseController : Controller { protected override IAsyncResult BeginExecuteCore(AsyncCallback callback, object state) {
public class BaseController : Controller
{
protected override IAsyncResult BeginExecuteCore(AsyncCallback callback, object state)
{
if (Request.Cookies["Language"] == null || !Validate.IsLanguage(Cookies.CurrentLanguageCode))
{
HttpCookie cookie_new = new HttpCookie("Language", "en");
cookie_new.Expires = DateTime.Now.AddYears(1);
Response.SetCookie(cookie_new);
Thread.CurrentThread.CurrentCulture =
Thread.CurrentThread.CurrentUICulture = CultureInfo.CreateSpecificCulture("en");
}
else
{
Thread.CurrentThread.CurrentCulture =
Thread.CurrentThread.CurrentUICulture = CultureInfo.CreateSpecificCulture(Cookies.CurrentLanguageCode);
}
return base.BeginExecuteCore(callback, state);
}
}
接收错误的控制器:
ViewBag.ErrorTitle = Thread.CurrentThread.CurrentCulture + "1";
ViewBag.Description = "";
switch (id)
{
case 0:
ViewBag.ErrorTitle = Resource.Lang.ErrorTitlePageNotFound;
ViewBag.Description = Resource.Lang.ErrorDescriptionPageNotFound;
break;
错误是:
找不到任何适合指定区域性或非特定区域性的资源。确保
“App_GlobalResources.Lang.resources”已正确嵌入或链接
在编译时放入程序集,或所有附属程序集
必须是可加载且完全签名的
cookie确实存在,默认语言设置为默认值,即en US,我有一个资源文件:Lang.resx
我在数据注释上遇到了相同的错误。我还编写了一个基类,让所有模型继承它,但仍然会遇到同样的问题。cultureInfo不应该像“en GB”而不仅仅是“en”吗?检查