Я успешно использовал это решение
Поместите следующий элемент на свою главную страницу
<%= Html.Hidden("HiddenCurrentUrl", Url.Action("Dummy"))%>
Объявите глобальную переменную в вашем основном файле JavaScript
var baseUrl = "";
Установите baseUrl в значение "HiddenCurrentUrl", когда ваш javascript загружен
baseUrl = $("#HiddenCurrentUrl").val();
baseUrl = baseUrl.substring(0, baseUrl.indexOf("Dummy"));
Использовать baseUrl
$.getJSON(baseUrl + "Action")
РЕДАКТИРОВАТЬ Улучшенное решение
В вашем контроллере
ViewBag.BaseUrl = Request.Url.GetLeftPart(UriPartial.Authority) + Request.ApplicationPath + "/";
На главной странице
<script type="text/javascript">
var YourNameSpace = YourNameSpace || {};
YourNameSpace.config = {
baseUrl: "@ViewBag.BaseUrl"
}
</script>
Используй свой baseUrl
$.getJSON(YourNameSpace.config.baseUrl + "Action")