Jquery 请求';在Ajax调用中,s RoutedData为空
我有一个应用程序,根据发送的区域设置对请求进行了本地化。例如:/en/MyController/MyAction。然后我检查发送的区域设置:Jquery 请求';在Ajax调用中,s RoutedData为空,jquery,asp.net-mvc-4,routes,Jquery,Asp.net Mvc 4,Routes,我有一个应用程序,根据发送的区域设置对请求进行了本地化。例如:/en/MyController/MyAction。然后我检查发送的区域设置: if (request.RequestContext.RouteData.Values["locale"] != null) { locale = request.RequestContext.RouteData.Values["locale"].ToString(); }
if (request.RequestContext.RouteData.Values["locale"] != null)
{
locale = request.RequestContext.RouteData.Values["locale"].ToString();
}
return locale;
除了(似乎)Ajax调用之外,这一切都很好。当我通过自定义AJAX表单HTML helper request.RequestContext.RouteData.Values[“locale”]进行AJAX调用时,即使“一瞥”显示路由按其应匹配,也会显示为null:
{locale}/MyArea/{controller}/{action}/{id}
我的表单HTML助手
public static MvcForm BeginFormLocalized(this AjaxHelper ajax, string action, object routeValues, AjaxOptions options)
{
RouteValueDictionary routeDictionary = UrlHelpers.BuildLocalizedRouteValuesDictionary(ajax.ViewContext.RequestContext, routeValues);
routeDictionary.Add("action", action);
string routeName = UrlHelpers.GetAppropriateRouteName(routeDictionary);
return ajax.BeginRouteForm(routeName, routeDictionary, options);
}
BuildLocalizeDuroteValuesDictionary将locale添加到RouteValuesDictionary(如果其存在于请求中),并根据路由值(本地化区域、本地化默认或默认路由)返回路由名称
Url在包含区域设置的情况下生成良好,并调用相应的操作,但RouteData集合为空并导致本地化回退到默认区域设置
有什么想法吗?我试着搜索我能想到的所有东西,但找不到类似的问题 你有没有找到解决办法?