Url路由问题 - Asp.Net MVC Razor

时间:2014-10-20 07:34:36

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

我使用" / Controller / ActionName"我的ajax调用的url格式。这种模式适用于具有此模式的开发服务器

/ Controller / ActionName

我的应用程序已使用以下网址格式部署到IIS

/ domain / Controller / ActionName

因此,每当我调用资源时,它都会路由到/ Controller / ActionName而不是/ domain / Controller / ActionName,导致404错误。有没有通过修改路由配置来快速解决这个问题,以便它可以在devl和IIS上运行。

2 个答案:

答案 0 :(得分:2)

如果您将相对网址“手动”定义为字符串,请尝试不要在开头使用“/”。

"Controller/ActionName"

修改

我过去所做的包括一个部分剃刀视图,负责使用@ Url.Action设置网址()

部分 - 共享/ 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中。

答案 1 :(得分:0)

在我的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上托管应用程序。

我无法从你的问题和评论中弄清楚你的案例有什么不同。如果这不能解决问题,请在您的设置周围添加更多信息。