#c# #jquery #ajax #asp.net-mvc
#c# #jquery #ajax #asp.net-mvc
Вопрос:
У меня есть представление под названием InvoiceTo и контроллер под названием Order. При использовании jQuery URL по умолчанию равен: url: ''
, и это результат:
locahost:port/domain/order/InvoiceTo
Если я изменю URL: url: /Order/GetInformation
, это результат:
locahost:port/domain/order/InvoiceTo/Order/GetInformation
Я уже перепробовал множество способов установить свой URL, но всегда ошибаюсь. Это мой jQuery:
$(document).ready(function () {
$('#InvoiceToDrop').change(function () {
var $div = $('#modalPartial');
var idcustomer = $(this).val();
$.ajax({
url: '/Order/GetInformation/' idcustomer,
type: 'GET',
success: function (data) {
alert(JSON.stringify(data));
},
error: function (error) {
}
})
});
});
Что мне нужно сделать, чтобы иметь этот URL:
locahost:port/domain/Order/GetInformation/1
Комментарии:
1. Как выглядит ваш контроллер?
2. Почему у вас должно быть
/domain/
в вашем URL? Я верю, что jQuery (и другие библиотеки тоже)/Order/GetInformation
должны означатьlocalhost:port/Order/GetInformation
3. Вы пробовали это
url: '@Url.RouteUrl(new { controller = "Order", action = "GetInformation" })/' idcustomer
?
Ответ №1:
Вы можете использовать метод UrlHelper Url.Action
в представлении:
$.ajax({
url: '@Url.Action("GetInformation", "Order", new { customerId })',
...
Или
url: '@Url.Action("GetInformation", "Order")/' idcustomer
При загрузке представления @Url.Action
анализируется и заменяется фактическим значением.
Преимущества использования этого метода в том, что он использует таблицу маршрутизации, а не статически типизированные URL-адреса.