外部js中控制器方法的路径(ASP.NET MVC)

时间:2017-10-22 09:16:33

标签: javascript c# asp.net asp.net-mvc asp.net-mvc-4

我有ASP.NET MVC应用程序。

在这个应用程序中我有脚本,我想转移到外部文件并面临问题

这是代码

    function todolisttoday() {
    $("#list").empty();
    $("#counter").empty();
    $.ajax({
        url: '@Url.Action("GetTodayList", "Home")',
        contentType: 'application/json; charset=utf-8',
        data: JSON.stringify(),
        type: 'POST',
        dataType: 'json',
        processData: false,
        success: function (data) {
            var list = data;
            var count = Object.keys(data).length;
            $("#counter").append('<b>' + "You have" + " " + count + " " + "appointments today" + '</b>');
            for (var i = 0; i <= list.length - 1; i++) {
                var timeobject = new Date();
                timeobject.setTime(Date.parse(list[i].time));
                var hours = timeobject.getHours();
                var minutes = timeobject.getMinutes();
                var ampm = hours >= 12 ? 'pm' : 'am';
                hours = hours % 12;
                hours = hours ? hours : 12; // the hour '0' should be '12'
                minutes = minutes < 10 ? '0' + minutes : minutes;
                var strTime = hours + ':' + minutes + ' ' + ampm;
                var divslist = '<div class="listdiv">' +
                    '<b >' + (i + 1) + '</b>' + "." + " "
                    + '<b class="title">' + list[i].title + '</b>' + " "
                    + '<b >' + strTime + '</b>' + '<b class="status" style="display:none;">' + list[i].status + '<b>'
                    + '</div>';
                $("#list").append(divslist);
            };
        }
    });
};

所以,据我所知,这一行url: '@Url.Action("GetTodayList", "Home")'无法工作。

如果它的功能是通过按钮调用我可以使用此data-request-url="@Url.Action("GetTodayList", "Home")"

但是$(document).ready

中的页面加载会调用函数

如何让网址路径有效?

1 个答案:

答案 0 :(得分:0)

js文件无法编译为cshtml,因此@Url.Action("GetTodayList", "Home")无法在JS中使用。

您可以在JS或

中设置此rl手册,如/home/GetTodayList
var jsModule = function (urls) {
    .
    .
    $(document).ready(function(){
        $.ajax({
        url: urls.GetTodayList,
        contentType: 'application/json; charset=utf-8',
        data: JSON.stringify(),
        type: 'POST',
        dataType: 'json',
        processData: false,
        success: function (data) {

        });
    })
}

在视图中

 <script src="..."></script>
 <script>
    var urls={GetTodayList:'@Url.Action("GetTodayList", "Home")'}
    jsModule(urls);
 </script>