值不能为空。参数名称:实体错误

Value cannot be null. Parameter name: entity error

我有观点:

@model List<MVCCrud.Models.ViewModels.ListTablaViewModel>
@{
    ViewBag.Title = "Mis datos";
}

<h2>@ViewBag.Title</h2>

<div class="row" style="text-align:right;padding:5px;">
    <a href="~/Tabla/Nuevo" class="btn btn-primary">Nuevo</a>
</div>
<div class="row">
    <div class="col-md-12">
        <table class="table">
            <tr>
                <th>#</th>
                <th>Nombre</th>
                <th>Correo</th>
                <th></th>
            </tr>
            @foreach (var oElemento in Model)
            {
                <tr>
                    <td>@oElemento.Id</td>
                    <td>@oElemento.Nombre</td>
                    <td>@oElemento.Correo</td>
                    <td>
                        <a class="btn btn-default" href="~/Tabla/Editar/@oElemento.Id">Editar</a>
                        <a class="btn btn-danger" href="~/Tabla/Eliminar/@oElemento.Id">Eliminar</a>
                    </td>
                </tr>

            }
        </table>
    </div>

</div>

以及控制器上的 Eliminar 方法:

 [HttpDelete]
        public ActionResult Eliminar(int? cedula)
        {
            using (ClinicaEntities db = new ClinicaEntities())
            { 
           
                var oTabla = db.Pacientes.Find(cedula);
                db.Pacientes.Remove(oTabla);
                db.SaveChanges();
            }
            return Redirect("~/Paciente/");
        }

一旦我尝试执行该方法,它就会给我一个“值不能为空。 Parameter name: entity”错误,好像没有将“cedula”传递给方法

您可以使用 @Url.Action 将您的 cedula 字段发送到 Controller 方法:

<a class="btn btn-default" href="@Url.Action("Editar","Tabla", new { cedula = oElemento.Id })">Editar</a>
<a class="btn btn-danger" href="@Url.Action("Eliminar","Tabla", new { cedula = oElemento.Id })">Eliminar</a>