2017-04-25 53 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