首页 > 解决方案 > 剃须刀页面中的 Ajax GET 调用未中断控制器中的方法

问题描述

我有以下使用 ajax 的 javascript:

function MoveToWeek(weekIndex) {
    if (weekIndex == 1) {
        var index = @Model.WeekIndex;
        index = index+1;
        $.ajax({
            url: '@Url.Action("RenderCalendar", "Calendar")',
            data: { weekIndex: index },
            type: "GET",
            success: function (data) {
                $("#RenderCalendarArea").html(data);
            }
        });
    }
    else if (weekIndex == -1) {
        var index = @Model.WeekIndex;
        index = index+-1;
        $.ajax({
            url: '@Url.Action("RenderCalendar", "Calendar")',
            data: { weekIndex: index},
            type: 'GET',
            success: function (data) {
                $('#RenderCalendarArea').html(data);
            }
        });
    }
}

我的控制器“CalendarController”中的以下方法:

    [HttpGet]
    public ActionResult RenderCalendar(int weekIndex = 0)
    {
         //..snip
    }

我已经确认 ajax 代码运行(如果我在 $.ajax 行上放置一个 javascript 断点,它会在那里中断)。此外,ajax 方法中的值似乎设置正确。在调试器中,javascript 方法已编译为:

function MoveToWeek(weekIndex) {
    if (weekIndex == 1) {
        var index = 0;
        index = index+1;
        $.ajax({
            url: '/Calendar/RenderCalendar',
            data: { weekIndex: index },
            type: "GET",
            success: function (data) {
                $("#RenderCalendarArea").html(data);
            }
        });
    }
    else if (weekIndex == -1) {
        var index = 0;
        index = index+-1;
        $.ajax({
            url: '/Calendar/RenderCalendar',
            data: { weekIndex: index},
            type: 'GET',
            success: function (data) {
                $('#RenderCalendarArea').html(data);
            }
        });
    }
}

但是,当此代码运行时,它不会在控制器中的方法内部中断。谁能明白为什么这不起作用?

标签: ajaxasp.net-mvcrazor

解决方案


这个特定的局部视图没有使用布局文件......这意味着它没有导入 jquery 库。这就是为什么它不起作用。哎呀。


推荐阅读