第二次尝试后,Ajax调用返回未定义的数据

时间:2014-07-23 23:11:47

标签: c# jquery ajax asp.net-mvc-3

我正在使用MVC3和C#,第一次调用时一切正常,但第二次C#action方法捕获的参数为null。

这是我的代码:

Monitor.SearchAction = function (pageNum) {
var searchUrl = $("#textURL").data("url");
var newPageNum = pageNum;

var searchInput =
{
    PageNumber: newPageNum
};

searchInput["FromDate"] = $("#FromDate").val();
searchInput["FromHour"] = $("#FromHour").val();

$.ajax({
    url: searchUrl,
    data: JSON.stringify(searchInput),
    success: function (d, m, x) {
        var $listingContainer = $("#listingContainer");
        $listingContainer.html(d);
    },
    async: false,
    cache: false,
});
};

这是控制器方法标题:

public PartialViewResult Search  (DAS.Dashboard.Web.Areas.Monitoring.ViewModels.MonitoringSearchInputModel searchInput)

因此,“searchInput”是一个具有三个属性的模型,在第二次调用时会收到“null”。

2 个答案:

答案 0 :(得分:0)

检查从被调用的C#方法返回的局部视图。即

public PartialViewResult Search  (DAS.Dashboard.Web.Areas.Monitoring.ViewModels.MonitoringSearchInputModel searchInput)

如果部分视图具有" FromDate"和" FromHour"输入字段和具有与第一次相同的属性。

答案 1 :(得分:0)

我刚发现了这个问题。使用Chrome调试器,我发现第一次发送请求时,它的类型是" POST",而第二次是" GET" (不要真的知道为什么会这样做)。

但添加"键入:' POST'"以及" contentType:' application / json&#39 ;;字符集= UTF-8'"解决了这个问题。

谢谢大家。