我正在尝试$.get()
刷新列表,但无论我尝试什么,操作方法要么没有获取查询参数,要么获取空值。
这是我的页面:
@model ParkPay.Helm.ViewModels.PublicHolidayIndexModel
@section ViewScripts
{
<script>
$(function () {
$("#import-link").click(function () {
var year = $("#Year").val();
var importUrl = "@Url.Action("Import")";
$.get({
url: importUrl,
data: { year: $("#Year").val() }
});
});
});
</script>
}
<section class="index-commands">
@Html.LabelFor(m => m.Year)
@Html.DropDownListFor(m => m.Year, Model.YearList)
@Html.ActionLink("Import holidays for the selected year.", "Import", null, new { id = "import-link" })
</section>
<section id="index-table">
@Html.Partial("KendoGridPartial", Model)
</section>
我已经尝试了几种变体$.get()
,在上面的当前版本中,Chrome 中的断点显示 URL 为"/PublicHoliday/Import?year=2013"
,但在 action 方法中:
[HttpGet]
public ActionResult Import(string year)
{
var service = new PublicHolidayService(ControllerDbContext);
service.ImportPublicHolidays(int.Parse(year));
return RedirectToAction("Index", new { year });
}
的值为year
空。如果我尝试$.get(importUrl, {year: $("#Year").val() })
,我会收到错误,即操作方法传递了一个空值。如果我尝试
$.get({
url: importUrl,
data: { year: $("#Year").val() }
});
我得到相同的空值。如果我在动作方法签名中创建year
一个int
,它甚至不会进入并且我得到
参数字典包含参数“年份”的空条目
我到底必须如何将此参数传递给$.get
?或者,有$.get
缺陷,我必须恢复$.ajax
通话?