使用jQuery调用MVC中的action方法,参数不起作用

我正在尝试使用jQuery在MVC应用程序中调用一个action方法。 基本上我想要的是获取几个输入字段的值,并通过单击按钮调用操作方法,将输入字段的值作为参数传递。 但我只得到“数字”参数的值,而不是“年”参数。

function selectWeek() { $('#selectWeekButton').click(function (event) { var number = $("#selectWeekId").val(); var year = $("#selectYearId").val(); var actionUrl = '' var yearUrl = actionUrl.replace('YEARPLACEHOLDER', year); var url = yearUrl.replace('WEEKPLACEHOLDER', number); alert(url); $.get(url, function (data) { alert('Test'); }); }); } 

正如您所看到的,我通过警报检查了url,并且它似乎包含两个值都很好。 但是当我在action方法中检查year参数的值时,它为null。

以下是输入字段:

 Vecka:   År:    

并且动作方法的开头:

 public ActionResult Edit(string number, string year) //etc... 

我知道这看起来很奇怪,而不仅仅是绑定字段,但原因是这些输入字段及其值不是此View的主要目的。 他们只是在这个时间表应用程序中选择另一周。 此外,我最终将用jQuery日历替换输入字段,所以我仍然需要做这样的事情。

那么最简单的方法是什么,为什么它不能正常工作呢?

我通常使用$ .get方法的jQuery第二个参数来输入URL参数。 这是一篇文章(asp.net mvc 1,但仍然是一个有效的例子):

http://blog.bobcravens.com/2009/11/ajax-calls-to-asp-net-mvc-action-methods-using-jquery/

试试这样:

 var number = $('#selectWeekId').val(); var year = $('#selectYearId').val(); var url = '<%: Url.Action("Edit") %>'; $.get(url, { number: number, year: year }, function (data) { alert('Test'); });