【问题标题】:Relative paths are not working when I publish MVC 5 website?当我发布 MVC 5 网站时,相对路径不起作用?
【发布时间】:2015-06-16 13:46:15
【问题描述】:

在我的 MVC5 项目中,我使用了 Jquery,为了使用控制器动作,我使用了相对路径。这是一个示例:-

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

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

在我的 asp.net 网络表单项目中,我使用 ReloveUrl() 或 ~。

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

【问题讨论】:

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


【解决方案1】:

尝试以下方法:

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

【讨论】:

    【解决方案2】:

    您应该考虑不要对 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"]
    });
    

    【讨论】:

    • 是的,很可能只是用一个函数包装它并传入
    猜你喜欢
    • 2011-01-25
    • 1970-01-01
    • 2017-07-12
    • 2013-04-15
    • 2013-02-19
    • 2015-08-30
    • 2011-03-17
    • 2014-06-25
    • 2018-09-15
    相关资源
    最近更新 更多