我试图通过jQuery调用一个控制器方法,调用jQuery函数但是它没有调用控制器方法。 这是我的jQuery代码:
@{
int year = DateTime.Today.Year;
}
<script>
var year = '@year';
var url = '@Url.Action("Details", "Holidays")';
var updateHolidays = function() {
$('#year').text(year);
$('#details').load(url, { id: year });
}
$('#previous').click(function() {
year--;
updateHolidays();
});
$('#next').click(function () {
year++;
updateHolidays();
});
</script>
@if (Session["LoggedUserName"] != null)
{
<table>
<tr style="height:10px">
<td>
<h2>Holiday Calandar</h2>
</td>
<td>
<input type="image" id="previous" value="submit" src="~/Images/left-arrow.png" style="width:30px" />
</td>
<td>
<h2>@year</h2>
</td>
<td>
<input type="image" id="next" value="submit" src="~/Images/right-arrow.png" style="width:30px" />
</td>
<td>
<ul id="menu">
<li>@Html.ActionLink("Add Holiday", "Create", null, new { id = "lnkCreate" })</li>
</ul>
</td>
</tr>
</table>
}
这是我的控制器方法代码:
public ActionResult Details(int year)
{
var model = db.tbl_HolidayList.Where(h => Convert.ToDateTime(h.Holiday_date).Year == year);
return PartialView(model);
}
我尝试调试但不会进入详细方法。任何人都可以告诉我在哪里错误吗?
答案 0 :(得分:4)
而不是这个
$('#details').load(url, { id: year });
试
$('#details').load(url, { year: year });
由于操作中参数的名称为Details(int year)
另一个问题是你需要一个id = details的元素:
<div id='details'></div>
因为如果选择器没有找到任何元素,.load
将不会触发。