#c# #jquery #asp.net #asp.net-web-api
#c# #jquery #asp.net #asp.net-веб-api
Вопрос:
Я хотел бы удалить запись в базе данных, используя jQuery и mvc-actionmethod. Но, похоже, я не могу заставить deletemethode работать..
контроллер кода
// DELETE: api/Categories/5
[ResponseType(typeof(Category))]
public IHttpActionResult DeleteCategory(int id)
{
Category category = db.Categories.Find(id);
if (category == null)
{
return NotFound();
}
db.Categories.Remove(category);
db.SaveChanges();
return Ok(category);
}
Комментарии:
1. Вам необходимо объявить и инициализировать подключение к базе данных
2. пожалуйста, опубликуйте соответствующий код. не изображения
3. Итак , какая часть не работает ?
4. Кроме того, серверная сторона здесь не имеет значения, если ваш вызов на стороне клиента достигает сервера. Где вы декларируете свои юридические лица? Приведенный выше код не должен компилироваться.
5. оповещение (элемент) никогда не вызовет ваш api
Ответ №1:
Давайте начнем. Я предполагаю, что вы используете ApiController
.
Если вы используете контроллер под названием Categories, то рекомендуется использовать в названии вашего метода глагол, который он представляет. Если вы хотите отправить DELETE: api/categories/id
, то у вас должен быть свой метод:
[ResponseType(typeof(Category))]
public IHttpActionResult Delete(int id)
{
Category category = db.Categories.Find(id);
if (category == null)
{
return NotFound();
}
db.Categories.Remove(category);
db.SaveChanges();
return Ok(category);
}
Если вы действительно хотите назвать это DeleteCategory, тогда вы должны сказать, что http verb
оно представляет:
[HttpDelete]
[ResponseType(typeof(Category))]
public IHttpActionResult DeleteCategory(int id)
{
Category category = db.Categories.Find(id);
if (category == null)
{
return NotFound();
}
db.Categories.Remove(category);
db.SaveChanges();
return Ok(category);
}
Но основная причина, по которой это не работает, заключается в том, что ваш function
ничего не делает, кроме вызова alert
function DeleteCategory(item)
{
alert(item);
}
ps: Не используйте фигурные скобки в следующей строке, пока вы работаете с javascript. У вас могут возникнуть проблемы с автоматической вставкой точки с запятой в javascript. Всегда выполняйте:
function DeleteCategory(item) {
alert(item);
}
Комментарии:
1. Привет, Рафаэль, спасибо за заголовок на HttpDelete
Ответ №2:
Я действительно благодарен за все ваши замечания. Как видите, я довольно новичок в stackflow и программировании!
Я попробовал alert, просто чтобы убедиться, что моя функция работает, включая элемент.
Сложная часть заключается в том, как я могу вызвать свой метод удаления и для этого удалить конкретный элемент…