Как использовать Ajax с asp.net MVC4
Я использую X-Editable плагин в Asp.net с jquery Datatables для редактирования моей таблицы. Я использую метод jQuery $.ajax() для вызова метода в контроллере, но он не затрагивает этот метод при вызове этой функции. Кто-нибудь знает, как работает метод jQuery $.ajax()?
$('#example').dataTable();
"fnRowCallback": function (nRow, aData, iDisplayIndex, iDisplayIndexFull) {
$('td', nRow).wrapInner('<a class="xediable-example" href="#"></a>').editable({
type: 'text',
pk: 1,
name: 'test',
url: function (params) {
var urlj = "TestMethod"
return $.ajax({
type: 'POST',
url: urlj,
data: JSON.stringify(params),
contentType: 'application/json; charset=utf-8',
dataType: 'json',
async: false,
cache: false,
timeout: 10000,
});
}
});
return nRow;
}
});
Метод контроля:
public static string TestMethod(string name, string pk, string value)
{
return "" ;
}
Сообщение об ошибке:
Erreur du serveur dans l'application '/'.La ressource est introuvable. Description : HTTP 404. La ressource recherchée (ou l'une de ses dépendances) a peut-être été supprimée ou renommée ou bien elle n'est plus disponible temporairement. Vérifiez l'URL ci-après et assurez-vous qu'elle est correcte. URL demandée: /H41_TitreConge/TestMethod Informations sur la version : Version Microsoft .NET Framework :4.0.30319; Version ASP.NET :4.0.30319.17929
4 ответа
Решение
Ваш URL должен быть:
var urlj = '/YOUR_CONTROLLER_NAME/TestMethod'
Ваш метод тестирования должен быть таким:
[HttpPost]
public JsonResult TestMethod(string name, string pk, string value)
{
return Json( ... )
}
Изменение URL-адреса на это тоже работает! Попробуй,
url: '@Url.Action("ActionName","ControllerName")',
var urlj = "TestMethod"
Не является действительным URI.
Измените его на http://://TestMethod, как бы вы ни настраивали свою среду.
Просто попробуйте получить доступ к TestMethod в вашем браузере, если вы введете URL-адрес службы / TestMethod, он должен действительно дать вам разумное сообщение.