c# – 使用jQuery AJAX的ASP.Net MVC路由问题

我的页面是domain.com/home/details/1

在我的jQuery AJAX调用中,我有以下内容,但当它调用它调用domain.com/home/details/home/getdata时

我该怎么做才能让它得到妥善解决?

$(document).ready(function () {

            oTable = $('#example').dataTable({
                "bServerSide": true,
                "sAjaxSource": "Home/GetData/",
                "bProcessing": true,
                "bPaginate": true,
                "sPaginationType": "full_numbers",
                "bFilter": true,
                "bAutoWidth": false,
                "fnServerData": function (sSource, aoData, fnCallback) {
                    /* Add some extra data to the sender */
                    //aoData.push({ "filtervalue": $('#filtervalue').val(), "Options": $('#Options').val() });
                    $.getJSON(sSource, aoData.concat($('form').serializeArray()), function (json) {
                        /* Do whatever additional processing you want on the callback, then tell DataTables */
                        fnCallback(json)
                    });
                }
            });

        });

解决方法:

在ASP.NET MVC中处理URL时,绝对总是使用URL帮助程序.绝对不会像你那样对网址进行硬编码.

所以:

"sAjaxSource": "@Url.Action("GetData", "Home")"

如果这是在一个单独的javascript文件中,您可以在#example上使用HTML5 data- *属性:

<div id="example" data-url="@Url.Action("GetData", "Home")">
    ...
</div>

然后在你单独的js中你可以使用.data()方法:

"sAjaxSource": $('#example').data('url')
上一篇:Spacemacs配置yasnippe插件


下一篇:PHP中的路由与Rails中的路由