Url路由问题-Asp.Net MVC Razor

本文关键字:MVC Razor Net -Asp 路由 问题 Url | 更新日期: 2023-09-27 18:27:03

我使用"/Controller/ActionName"url格式进行ajax调用。此模式与我的开发服务器(具有此模式)配合良好

/Controller/ActionName

我的应用程序已部署到IIS,具有以下url模式

/domain/Controller/ActionName

因此,每当我调用资源时,它都会路由到/Controller/ActionName,而不是那里的/domain/Controllet/ActionName,从而导致404错误。通过修改routeconfiguration,使其在devl和IIS上都能工作,有什么快速解决方案吗。

Url路由问题-Asp.Net MVC Razor

如果将相对url"手动"定义为字符串,请尝试不要在开头使用"/"。

"Controller/ActionName"

编辑

我过去所做的是包含一个Partial Razor View,它负责使用@Url.Action()设置Url

部分-共享/JavascriptUrlsPartial.cshtml

<script type="text/javascript">
  (function ($, app) {
    app.urls =
    {
      actionA: '@Url.Action("Controller", "ActionA")',
    };
  })(jQuery, app = app || {});
</script>

然后在javascript中引用渲染的url。

$.ajax({
  url: app.urls.actionA,
  //etc
})

然后,该分部包含在_Layout.cshtml.

在我的Razor视图中,我们有Ajax调用,如:

        var model = { searchId: searchId, newSearchName: searchName, newSearchDescription: description };
        $.ajax({
            url: '@Url.Action("Rename", "Search")',
            contentType: 'application/json; charset=utf-8',
            type: 'POST',
            dataType: 'html',
            data: JSON.stringify(model)
        })

我们没有在当地或生产环境中做任何特殊的事情。我们在IIS 7.5上托管该应用程序。

我无法从你的问题和评论中看出你的情况有什么不同。如果这不能解决问题,请添加有关设置的更多信息。