我有一个asp.net mvc Web应用程序,它部署在/ sites下,如下所示:
http://servername/sites/
但是,如果我引用该URL,如下所示:
url:'/ControllerName/ActionMethodName'
结果将是
http://servername/ControllerName/ActionMethodName
而不是http://servername/ControllerName/sites/ActionMethodName
我通常通过写以下内容在剃刀视图中解决此问题:
url: "@Url.Content("~/ControllerName/ActionMethodName")"
。但似乎javascript确实没有相同的功能。所以有人可以建议吗?谢谢
最佳答案
有很多方法可以解决此问题,而不是那么优雅。
我更喜欢在_Layout.cshtml(或任何其他母版页)中放置一个隐藏字段
@Html.Hidden("HiddenCurrentUrl", Url.Content("~"))
在常见的js文件中:
var baseUrl = "";
$(document).ready(function () {
baseUrl = $("#HiddenCurrentUrl").val();
});
然后像这样引用Urls:
$.ajax({
type: 'POST',
url: baseUrl + 'solicitacoes/obtertipo/' + value
})