我发布MVC 5网站时相对路径不起作用?

时间:2015-06-16 13:46:15

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

在我的MVC5项目中,我使用了Jquery并使用了Controller Actions,我使用了相对路径。以下是一个示例: -

 $("#divTree").jstree({
        'core': {
            'data': {
                "url": "/Customer/GetList",
                "dataType": "json"
            },
            "check_callback": true
        },
        "plugins": ["contextmenu", "dnd", "json_data"]
    });

我也在jquery.ajax()方法中使用相对路径。所有相对路径都在visual studio中工作。但是当我在IIS中发布并托管它时,相对路径不起作用。

在我的asp.net web表单项目中,我要么使用ReloveUrl()或〜。

我应该如何在MVC 5项目中处理它。?

2 个答案:

答案 0 :(得分:1)

尝试以下方法:

$("#divTree").jstree({
        'core': {
            'data': {
                "url": "~/Customer/GetList",
                "dataType": "json"
            },
            "check_callback": true
        },
        "plugins": ["contextmenu", "dnd", "json_data"]
    });

答案 1 :(得分:0)

您应该考虑不对MVC应用中的URL进行硬编码,而是使用提供的帮助程序。如果脚本位于视图中,则可以使用@ Url.Action()生成URL。如果没有,您仍然可以通过某种方式将其作为参数传递给JS。

$("#divTree").jstree({
    'core': {
        'data': {
            "url": '@Url.Action("Customer", "GetList")',
            "dataType": "json"
        },
        "check_callback": true
    },
    "plugins": ["contextmenu", "dnd", "json_data"]
});