我使用" / Controller / ActionName"我的ajax调用的url格式。这种模式适用于具有此模式的开发服务器
/ Controller / ActionName
我的应用程序已使用以下网址格式部署到IIS
/ domain / Controller / ActionName
因此,每当我调用资源时,它都会路由到/ Controller / ActionName而不是/ domain / Controller / ActionName,导致404错误。有没有通过修改路由配置来快速解决这个问题,以便它可以在devl和IIS上运行。
答案 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上托管应用程序。
我无法从你的问题和评论中弄清楚你的案例有什么不同。如果这不能解决问题,请在您的设置周围添加更多信息。