Asp.net mvc 如何从MVC应用程序到web API的文化流

Asp.net mvc 如何从MVC应用程序到web API的文化流,asp.net-mvc,asp.net-web-api,globalization,Asp.net Mvc,Asp.net Web Api,Globalization,我在MVC应用程序和WebAPI中工作。这两个应用程序分别托管 下面的区域性代码在MVC应用程序的Global.asax中提到 protected void Application_AcquireRequestState(object sender, EventArgs e) { string langCode = ""; try { langCode = HttpConte

我在MVC应用程序和WebAPI中工作。这两个应用程序分别托管

下面的区域性代码在MVC应用程序的Global.asax中提到

 protected void Application_AcquireRequestState(object sender, EventArgs e)
        {
            string langCode = "";
            try
            {
                langCode = HttpContext.Current.Request.Cookies["es-mx].Value;

            }
            catch (Exception)
            {
                langCode = "en-US";
            }
            CultureInfo ci = new CultureInfo(langCode);
            Thread.CurrentThread.CurrentUICulture = (ci);
            Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture(ci.Name);             
      }
我的mvc应用程序了解当前文化。我的GET/POST请求从mvc控制器转到web API

public JsonResult callWebApiAdmin(EmpViewModel objEmpModel)
        {

            object resultView = null;
            try
            {
                string url = webAPIUrl + "EmpAPI/callWebApiAdmin";

                resultView = UtilityHelper.SaveData(url, objEmpModel);

            }
            catch (Exception ex)
            {


            }
            return Json(resultView, JsonRequestBehavior.AllowGet);
        }

但是webAPI如何知道来自MVC应用程序的区域性调用。因此,webAPI将根据MVC应用程序当前区域性返回日期时间和数字格式。

您还可以检查Web API中的cookie。您可以在WebAPI操作过滤器中实现,或者在自定义中间件组件(如果您使用OWIN)中实现,以便对所有请求自动完成

如果没有,则必须将区域性存储在客户端,并将其作为参数发送到服务器端的所有请求

但是,如果您使用的是Web API,则很可能是根据API返回的值更改客户端中的DOM元素。在这种情况下,您可以从Web APi返回原始值,并在客户端对其进行格式化,例如使用for dates