У меня есть сетка кендо, где я показываю список документов, загруженных пользователем. В сетке у меня есть кнопка «Удалить», которая запускает функцию dataSource «destroy», которая вызывает класс службы удаления. Для достижения удаления документа Я передаю documentId, который был выбран пользователем в запросе к классу обслуживания, выполнив следующие действия в моем источнике данных:Kendo grid: destroy не работает
destroy: {
url: function (options) {
options.IsActive = false;
// type: "POST";
contentType: "application/json; charset=utf8";
return constants.serviceUrl + "Document/Delete?id=" + options.DocumentId;
},
},
dataType: "json",
contentType: "application/json"
},
По какой-то причине, наряду с documentId он, добавив все данные связанный с этим документом, который я не намерен делать. Вот как выглядит URL-адрес в скрипаче.
http://localhost/Services/HumanResources/api/Document/Delete?id=2&DocumentId=2&ReviewId=0&DocumentTypeId=2&Name=Applications+to+Install.docx&DocumentData=UEsDBBQABgAIAAAAIQCUZeTvkgEAAK4HAAATAAgCW0NvbnRlbnRfVHlwZXNdLnhtbCCiBAIooAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAe&CreatedById=00000000-0000-0000-0000-000000000000&CreatedDate=0001-01-01T00%3A00%3A00&RawFileName=&DocumentTypeName=Manager
Я установил точку останова для своей функции destroy и удостоверился, что documentID просто имеет номер больше ничего. Из-за этого длинного URL-адреса, который является неправильным, класс обслуживания никогда не попадает. Ниже то, что обманщик говорит:
> HTTP/1.1 414 Request-URI Too Long
Content-Type: text/html; charset=us-ascii
Server: Microsoft-HTTPAPI/2.0
Date: Wed, 09 Dec 2015 15:00:46 GMT
Connection: close
Content-Length: 329
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN""http://www.w3.org/TR/html4/strict.dtd">
<HTML><HEAD><TITLE>Request URL Too Long</TITLE>
<META HTTP-EQUIV="Content-Type" Content="text/html; charset=us-ascii"></HEAD>
<BODY><h2>Request URL Too Long</h2>
<hr><p>HTTP Error 414. The request URL is too long.</p>
</BODY></HTML>
Любая идея, что моя функция уничтожить это добавление всех дополнительные данных, которые я даже не проходящие по ссылке URL службы?
Привет @Jaroslaw. Спасибо, что указал мне в правильном направлении. Я не знаю, почему вызов destroy был добавлением всей модели в ajax-вызов. но выполнение вышеуказанной проблемы исправлено. Я не понимаю, что возвращает {} do под типом === "destroy" –
Ouch, return {} переопределяет поведение по умолчанию kendo по умолчанию и возвращает пустой объект. Вы также можете изменить свою функцию url-url, удалив DocumentId и вернитесь сюда: 'return {id: options.DocumentId};' И вы, вероятно, все еще хотите «читать», «обновлять» и «создавать», работают так же, как и вы должны просто вернуть ничего для типа destroy. (=== то же самое, что ==, но он также сравнивает тип данных, и это хороший способ использовать === вместо ==). –
спасибо за объяснение! имеет смысл :) –