我正在尝试使用 jQuery 在 MVC 应用程序中调用操作方法。基本上我想要的是获取几个输入字段的值,并通过单击按钮调用操作方法,将输入字段的值作为参数传递。但我只得到“number”参数的值,而不是“year”参数。
function selectWeek() {
$('#selectWeekButton').click(function (event) {
var number = $("#selectWeekId").val();
var year = $("#selectYearId").val();
var actionUrl = '<%: Url.Action("Edit", new { number="WEEKPLACEHOLDER", year="YEARPLACEHOLDER" }) %>'
var yearUrl = actionUrl.replace('YEARPLACEHOLDER', year);
var url = yearUrl.replace('WEEKPLACEHOLDER', number);
alert(url);
$.get(url, function (data) {
alert('Test');
});
});
}
我用警报检查了 url,如您所见,它似乎包含两个值都很好。但是当我检查操作方法中的年份参数的值时,它是空的。
以下是输入字段:
<span>Vecka: </span>
<input type="text" id="selectWeekId" />
<span>År: </span>
<input type="text" id="selectYearId" />
<input type="button" value="Välj vecka" id="selectWeekButton" />
以及操作方法的开头:
public ActionResult Edit(string number, string year)
//etc...
我知道这看起来像是一件奇怪的事情,而不仅仅是绑定(bind)字段,但原因是这些输入字段及其值不是此 View 的主要目的。他们只是在此时间表应用程序中选择另一周。此外,我最终将用 jQuery 日历替换输入字段,所以我仍然需要做这样的事情。
那么,最简单的方法是什么?为什么它不能按原样工作?
最佳答案
我通常使用 jQuery $.get 方法的第二个参数来输入 URL 参数。这是一篇文章(asp.net mvc 1,但仍然是一个有效的示例):
http://blog.bobcravens.com/2009/11/ajax-calls-to-asp-net-mvc-action-methods-using-jquery/
关于asp.net - 使用 jQuery 和参数在 MVC 中调用操作方法不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4542333/