我正在单独托管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应用程序当前文化返回日期时间和数字格式。
答案 0 :(得分:0)
您还可以在Web API中检查Cookie。您可以在Web API操作过滤器中实现该过滤器,或者在OWIN中使用自定义中间件组件,以便为所有请求自动完成。
如果没有,您必须将文化存储在客户端,并将其作为参数发送给服务器端的所有请求。
但是,如果您正在使用Web API,则很可能您正在更改客户端中的DOM元素,具体取决于API返回的值。在这种情况下,您可以从Web APi返回原始值并在客户端进行格式化,例如使用moment.js表示日期。