Я работаю над MVC-приложением, и я пытаюсь сделать соединение AJAX с контроллером веб-API, который у меня есть. Единственная ошибка, которую я могу получить, - «Неопознано». Кроме того, в моем диспетчере api delete action я бросаю случайное исключение, поэтому я могу определить, успешно ли я попал в этот метод, но я этого не делаю.Ajax вызов ASP.NET MVC веб-API
UPDATE:
Ok Кажется, я забывал о «removeFile» маршрут на моей URL в вызове Ajax, но вопрос Если я добавляю на «данные» атрибут вызов Ajax пройти в моем сериализованном форма управления перестает работать должным образом.
данных: $ ("# frmManipulate") сериализации()
Ajax вызова:.
$("#frmManipulate").submit(function() {
if (confirm("Are you sure you want to delete all selected files?")) {
if ($(this).data('clicked').is('[name="delete"]')) {
$.ajax({
type: "DELETE",
url: "api/file/removeFile",
data: $("#frmManipulate").serialize()
}).complete(function ($data) {
alert("done");
});
}
return false;
});
Web API управления:
[RoutePrefix("api/file")]
public class ManipulateController : ApiController
{
// GET api/<controller>
public IEnumerable<string> Get()
{
return new string[] { "value1", "value2" };
}
// GET api/<controller>/5
public string Get(int id)
{
return "value";
}
// POST api/<controller>
public void Post([FromBody]string value)
{
}
// PUT api/<controller>/5
public void Put(int id, [FromBody]string value)
{
}
[Route("removeFile")]
// DELETE api/<controller>/5
public void DeleteFile(string[] url)
{
foreach (var file in url)
{
throw new MarshalDirectiveException();
}
}
}
Я пробовал, но это не сработало. И в любом случае я хочу передать свои элементы управления формы. – user3006019
попробуйте добавить атрибут [HttpDelete] к методу контроллера, а затем попробуйте выполнить запрос удаления. –
У DELETE не может быть тела сообщения. – Badri