jQuery-MVC不调用控制器方法

时间:2014-12-29 18:53:41

标签: jquery asp.net-mvc asp.net-mvc-4

我试图通过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);
        }

我尝试调试但不会进入详细方法。任何人都可以告诉我在哪里错误吗?

1 个答案:

答案 0 :(得分:4)

而不是这个

$('#details').load(url, { id: year });

$('#details').load(url, { year: year });

由于操作中参数的名称为Details(int year)

另一个问题是你需要一个id = details的元素:

<div id='details'></div>

因为如果选择器没有找到任何元素,.load将不会触发。