如何培养从MVC Appication到Web API的流程

时间:2015-05-28 07:08:47

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

我正在单独托管MVC Application和WebAPI .both应用程序。

在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应用程序了解当前的culture.my GET / POST请求从MVC Controller转到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 Application调用哪个文化。所以webAPI根据mvc应用程序当前文化返回日期时间和数字格式。

1 个答案:

答案 0 :(得分:0)

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

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

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