Является ли ваш JavaScript в представлении ASP.NET MVC? Если это так, вы можете использовать Url.Action для генерации URL на лету.
$.ajax({
type: "POST",
url: '<%: Url.Action("index", "categories")%>',
});
Если ваш JavaScript находится в отдельном файле .js, то вы добавили немного больше сложности.
Мое решение состояло в том, чтобы динамически отображать файл .js (то есть направлять scripts.js в метод действия, который возвращает представление с типом содержимого text / javascript).
Я также пытался передать URL из отрисованного представления в файл .js, но это показалось более грязным, чем в приведенном выше решении.
Во вторник в MVC Conf было предложено избегать поддержки как относительных, так и абсолютных URL-адресов - таким образом, вы можете делать предположения относительно базового URL-адреса. Это тоже работает ...