我有一个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
})

07-23 07:03