我有这个奇怪的问题。我刚从开发pc(win7到win10)切换,当我现在运行我的网站(在调试中)时,ajax调用发布的参数没有被映射到控制器动作的参数。在我的旧开发电脑上,它正在被映射,但在我的新电脑上,它只是赢了。
这是我的ajax电话:
var obj = { companies: activeCompanyFilters, vesselTypes: activeVesselTypeFilters, vessels: activeVesselFilters, mapFilterType: getMapFilterType(), flushSession: flushSession };
var json = JSON.stringify(obj);
$.ajax({
type: "POST",
url: $("#filter-section").attr("data-source-link"),
data: json,
contentType: "application/json; charset=utf-8",
success: retrieveSuccess
}).done(() => {
layerChanged();
if (indicator) {
indicator.close();
}
});
这是发送的内容(用fiddler捕获):
{"公司":[]," vesselTypes":[],"血管":[2317]" mapFilterType&#34 ;: 1," flushSession":假}
这是我的控制者:
[AjaxOnly]
public JsonResult FilterMarkers(long[] companies, long[] vesselTypes, long[] vessels, int? mapFilterType, bool? flushSession)
{
if (flushSession.HasValue && flushSession.Value)
Session["HomeSession"] = null;
MapFilterType filterType = HomeControllerHelper.CastToMapFilterTypeOrDefault(mapFilterType, GetSidUser());
var session = HomeControllerHelper.GetCurrentSession(Session, filterType);
var filtered = MapFilter.FilterData(session.VesselDetails, companies, vesselTypes, vessels).ToList();
return new JsonResult()
{
JsonRequestBehavior = JsonRequestBehavior.AllowGet,
Data = new
{
VesselDetails = filtered
}
};
}
我不知道自己错过了什么。我知道它有效,因为它适用于我的旧电脑。我在IIS中找不到设置吗?
答案 0 :(得分:0)
我发现了问题。通过visual studio,您可以创建一个虚拟目录,如果您使用的是本地iis。我配置它像本地主机/测试'。 网站中的内容配置为测试。
所以这只是一个套管问题。只是奇怪的只有映射失败但其他一切工作