【问题标题】:how to culture flow from MVC Appication to web API如何培养从 MVC 应用程序到 Web API 的流程
【发布时间】:2015-05-28 07:08:46
【问题描述】:

我在 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 应用程序当前文化返回日期时间和数字格式。

【问题讨论】:

    标签: asp.net-mvc asp.net-web-api globalization


    【解决方案1】:

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

    如果没有,您应该将文化存储在客户端,并将其作为参数发送给服务器端的所有请求。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-03-05
      • 2013-12-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多