Как RESTful удалить запись Asp.Net Mvc 2 - PullRequest
1 голос
/ 23 мая 2010

У меня есть ссылки для удаления в приложении Asp.Net Mvc2.
/ {Контроллер} / Удалить / {ID} * * +1002

Кажется, использование ссылки для удаления несет угрозу безопасности. Не используйте Delete Links, потому что они создают дыры в безопасности

Я нашел это Реализация RESTful-маршрутов и контроллеров в ASP.NET MVC 2.0 , но я не уверен, как реализовать простую функцию удаления, используя новый класс HttpDeleteAttribute.

Есть ли примеры удаления, подход RESTful?

Ответы [ 2 ]

0 голосов
/ 24 мая 2010

Это (больше) риск для безопасности, если вы не используете атрибут [HttpPost] на контроллере.

Кроме того, ваш подход не является спокойным.

Идея состоит в том, что у вас есть только один URL-адрес, которому могут передаваться различные неявные глаголы Http

Возврат всех: / Product / [HttpGet]

Return One: / Product / 43 [HttpGet]

Добавить: / Product / (Информация о продукте в форме сообщения) [HttpPut] или [HttpPost]

Удалить: / Product / 43 [HttpDelete]

Вы можете сделать это, используя MVC в стандартной форме или JQuery

И ответить на вопрос: Добавьте ссылку для удаления, как это Удалить продукт , но подключитесь к ней, используя живые события JQuery, чтобы она перехватила щелчок, используя .preventDefault, а затем вызовите URL как запрос ajax с глаголом DELETE.

Нужна дополнительная помощь, дайте мне знать

0 голосов
/ 23 мая 2010

Подход RESTful к Delete заключается в отправке достаточного количества информации для идентификации ресурса и использования HTTP-команды DELETE (или некоторой альтернативы для веб-страниц). Но все это подробно описано в статье, так что я не думаю, что это то, что вы действительно спрашиваете.

Если вы имеете в виду «Что мне делать вместо ссылки« Удалить »?», Обычно ответом будет «Вы уверены, что хотите удалить Продукт 8496?» Форма, в которой действие кнопки POST помещает запрос на удаление. Эта форма может быть либо на новой странице, либо в модальном всплывающем окне , либо в обоих случаях, если вы хотите объединить удобство использования и доступность.

...