用于删除未获取ID的实体的控制器

时间:2018-11-20 09:16:16

标签: c# entity-framework dependency-injection asp.net-core-mvc

我有这个控制器方法

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

我为此生成了一个删除视图。我假设基于单击删除的实体,它将获得其信息。没有。我不知道为什么参数中的id始终为0。足够有趣的是,如果您输入... / DeleteMake / 1之类的内容,则它对ID为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);
    }

0 个答案:

没有答案