如何使用Ajax来使用ASP.Net MVC控制器操作来返回表单中两个日期之间的差异?

我正在使用MVC3,并且有一个用于为员工预订休假的视图。 作为其中的一部分,我想根据他们输入的两个日期显示要采取的天数 – 我使用jQuery以初步的方式完成了这项工作,但是想要使用我将获得的控制器操作将返回基于两个日期的单个值(它考虑到周末和银行假日)。

问题是,将DateFrom和DateTo(两个输入)的值传递给控制器​​并使用Ajax检索结果的最佳方法是什么? 我想要在更改任一日期并且不提交整个表单时更新此值。

我不确定这种事情的最佳做法,所以任何帮助都会受到赞赏。

问题是,将DateFrom和DateTo(两个输入)的值传递给控制器​​并使用Ajax检索结果的最佳方法是什么?

您可以订阅这些文本框的更改事件并发送AJAX请求:

$(function() { $('#DateFrom, #DateTo').change(function() { // whenever the user changes the value send an AJAX request: $.ajax({ url: '@Url.Action("SomeAction", "SomeController")', type: 'POST', contentType: 'application/json; charset=utf-8', data: JSON.stringify({ dateFrom: $('#DateFrom').val(), dateTo: $('#DateTo').val() }), success: function(result) { // TODO: The AJAX call succeeded => do something with the results } }); }); }); 

控制器动作可能如下所示:

 public ActionResult SomeAction(DateTime dateFrom, DateTime dateTo) { ... }