Контроллер для удаления объекта, не получающего идентификатор - PullRequest
0 голосов
/ 20 ноября 2018

У меня есть этот метод контроллера

        [HttpGet]
    public IActionResult DeleteMake(int id)
    {
        var data = _dbContext.VehicleMake.Find(id);
        return View(data);
    }

Я создал для него представление удаления.Я предполагал, что на основе сущности, на которой я нажал кнопку «Удалить», он получит информацию.Это не так.Я не знаю почему.Идентификатор в параметре всегда равен 0. Достаточно интересно, если вы наберете что-то вроде ... / DeleteMake / 1, то оно работает с идентификатором 1. Просто не работает с представлением.

Это представление

@model Data.Entities.VehicleMakeEntity

@{
ViewData["Title"] = "DeleteMake";
}
<h2>DeleteMake</h2>
<h3>Are you sure you want to delete this?</h3>
<div>
<h4>VehicleMakeEntity</h4>
<hr />
<dl class="dl-horizontal">
    <dt>
        @Html.DisplayNameFor(model => model.Id)
    </dt>
    <dd>
        @Html.DisplayFor(model => model.Id)
    </dd>
    <dt>
        @Html.DisplayNameFor(model => model.Name)
    </dt>
    <dd>
        @Html.DisplayFor(model => model.Name)
    </dd>
    <dt>
        @Html.DisplayNameFor(model => model.Abrv)
    </dt>
    <dd>
        @Html.DisplayFor(model => model.Abrv)
    </dd>
</dl>

<form asp-action="DeleteMake">
    <input type="submit" value="Delete" class="btn btn-default" /> |
    <a asp-action="Index">Back to List</a>
</form>

И метод, который я использую для фактического перечисления всех элементов

                private readonly IQueryable<VehicleMakeEntity> _source;

    public MakeRepository(ProjectDbContext context)
    {
        this.context = context;
        _source = this.context.VehicleMake;
    }
        public IEnumerable<VehicleMakeEntity> SelectListMake(int index, int count, Expression<Func<VehicleMakeEntity, int>> orderLambda)
    {
        return _source.Skip(index * count).Take(count).OrderBy(orderLambda);
    }
...