2017-04-25 80 views
0

即時通訊嘗試從datepicker獲取值並將這些值發佈到控制器。但是這些值在控制器端總是空的。我已閱讀關於此問題的其他線程,但無法得到任何幫助。POST日期時間與AJAX控制器asp.net核心

$(function GetFeed() { 

$('#get_feed').click(function() { 


    var fromDate = $('#from_date').val(); 
    var toDate = $('#to_date').val(); 
    var price = $('#Price').val(); 
    var _data = { 
     'fromDate': fromDate, 
     'toDate': toDate, 
     'price': price 
    } 
    $.ajax({ 
     url: 'Home/GetFeedList', 
     type: 'POST', 
     data: _data, 
     contentType: "application/json", 
     dataType: 'json', 
     success: function (s) { 

      console.log('success' + s) 
     }, 
     error: function (e) { console.log('something went wrong!', e, fromDate, toDate) } 
    }); 
}); 

});

而且繼承人控制器,所有參數都爲空:

public async Task<ActionResult> GetFeedList(string fromDate, string toDate, string price) 

另外一個視圖模型

[Required(ErrorMessage = "Please insert start date")] 
    [DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{dd-MM-yyyy}")] 
    public DateTime FromDate { get; set; } 

    [Required(ErrorMessage = "Please insert end date")] 
    [DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{dd-MM-yyyy}")] 
    public DateTime ToDate { get; set; } 
+0

變化是Ajax調用一個GET –

回答

0

你的控制器看起來像一個GET功能,但您使用的Ajax調用一個POST。

將AJAX調用更改爲GET方法類型。

如果你想要一個POST明確 - 然後[HttpPost]控制器簽名上面

[HttpPost] 
public async Task<ActionResult> GetFeedList(string fromDate, string toDate, string price) 
+0

你好,是的,我確實有[HttpPost]的簽名,然後我不會得到值。但是現在,當我將簽名更改爲HttpGet和Ajax請求GET時,這些值不再爲空。想知道爲什麼它不適用於郵政。但是,謝謝! – user3024888

+0

如果你有一個模型,那麼這個帖子會更好 - 你將有一個C#模型具有相同的屬性,那麼你的控制器將接受該模型,而不是字符串值。如果它解決了您的問題,請標記我的答案正確。 –

+0

如果我使用Model作爲控制器中的參數,那麼應該在AJAX中使用模型將視圖傳遞給ajax控制器? – user3024888