我正在使用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”。
答案 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'"解决了这个问题。
谢谢大家。