2014-07-23 5 views
1

MVC3과 C#을 처음 사용할 때 모든 것이 제대로 작동하지만 C# 작업 메서드에서 캐럿 된 매개 변수는 null입니다. 여기 Ajax 호출은 두 번째 시도 후에 정의되지 않은 데이터를 반환합니다.

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

이것이 어떻게 호출되는지 보여주는 데 도움이됩니다. – skrrgwasme

+0

searchUrl 및 searchInput이 채워지는 방식과 값이 무엇인지 알지 못하면이를 진단 할 방법이 없습니다. –

+0

콘솔에 그 값을 로깅하여 기본적인 문제 해결을 시도해 보셨습니까? – charlietfl

답변

0

호출 된 C# 메서드에서 반환되는 부분 뷰를 확인하십시오. 즉

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

부분보기에 "FromDate"및 "FromHour"입력 필드가 있고 처음과 동일한 속성이있는 경우.

+0

감사합니다. 처음으로 값을 가질 때, 두 번째는 null입니다. – Ch3m4x

0

방금 ​​문제를 발견했습니다. Chrome 디버거를 사용하여 요청이 처음으로 전송 된 것이 "POST"였고 두 번째로 "GET"(실제로 이것이 왜 hapenning인지 알지 못함)을 발견했습니다.

그러나 "type : 'POST'및"contentType : 'application/json'; charset = utf-8 ' "을 추가하면 문제가 해결됩니다.

감사합니다.

관련 문제