Не получается удалить объект с использованием Entity. Есть проект ASP.NET MVC и таблица в БД MS SQL.
В папке моделей есть два класса:
Класс контекста данных:
namespace TransportDemo.Models
{
public class RoutContext : DbContext
{
public DbSet<Route> Routes { get; set; }
}
}
Класс модели, представляющий таблицу Routes:
public class Route
{
public int ID { get; set;}
public string summary{ get; set; }
}
В HomeController есть ActionResult, который возвращает эту таблицу из БД (или представление, как правильно сказать?)
RoutContext db = new RoutContext();
public ActionResult Index()
{
IEnumerable<Route> routes = db.Routes;
ViewBag.Route = routes;
return View();
}
И во Views Index.cshtml таблица отображает данные :
<table border="1" align="center" cellpadding="2">
<tr>
<td align="center"><p>ID маршрута</p></td>
<td align="center"><p>Описание</p></td>
<td></td>
</tr>
@foreach (var b in ViewBag.Route)
{
<tr>
<td align="center">@b.ID</td>
<td align="center">@b.agency_id</td>
<td align="center"><a href="/Home/Delete/@b.ID">Удалить</a></td>
</tr>
}
</table>
Мне нужно удалить по ID какую-то запись, в том же HomeController пишу такой метод:
[HttpPost]
public ActionResult Delete(int id)
{
Route _routeDelet = db.Routes.First(c=> c.ID==id);
db.Routes.Remove(_routeDelet);
db.SaveChanges();
return ViewBag();
}
Получаю ошибку Не удалось найти данный ресурс.
В чем моя ошибка?
Вы пытаетесь вызвать метод контроллера Delete обозначенный аттрибутом [HttpPost] с помощью GET запроса,
поэтому получаете ошибку 404 Не удалось найти данный ресурс.
Вам нужно заменить [HttpPost] на [HttpGet] (или просто убрать [HttpPost], по умолчанию используется [HttpGet]), что противоречит REST
Либо каким-то образом отправлять POST запрос, например, с помощью форм или Ajax
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости