Erro Ao tentar Excluir um Registro (ASP.NET - MVC)
22/02/2017
0
Pessoal,
Eu estou tendo uma mensagem de erro quando tento fazer uma operação de exclusão de um registro, onde o controlador acusa não ter recebido a entrada do parâmentro. O que estou esquecendo?... segue fragmentos dos códigos:
CONTROLLER
public ActionResult Delete(int? id)
{
if (id == null)
{
return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
}
Perfil perfil = _contexto.Perfis.Find(id);
if (perfil == null)
{
return HttpNotFound();
}
return View(perfil);
}
[HttpPost, ActionName("Delete")]
[ValidateAntiForgeryToken]
public ActionResult Delete(int id_perfil)
{
string mensagem = string.Empty;
Perfil perfil = _contexto.Perfis.Find(id_perfil);
_contexto.Perfis.Remove(perfil);
_contexto.SaveChanges();
if (perfil != null)
{
mensagem = string.Format(" excluído com sucesso", perfil.nome_perfil);
}
return View(perfil);
}
TRECHO DA VIEW (Index)
<button class="btn btn-primary delete" data-id="@item.id_perfil"><i class="glyphicon glyphicon-trash"></i></button>
...
<script>
$(".delete").click(function () {
var id = $(this).attr("data-id");
$("#modal").load("Perfil/Delete?id=" + id, function () {
$("#modal").modal();
})
});
</script>
TRECHO DA VIEW (Delete)
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">×</span><span class="sr-only">Close</span></button>
<h4 class="modal-title"><i class="glyphicon glyphicon-user"></i> Excluir Perfil</h4>
</div>
<div class="modal-body">
<input type="hidden" />
<p>Deseja excluir o Perfil: <em><strong>@Html.DisplayFor(model => model.nome_perfil)</strong></em> ?</p>
</div>
<div class="modal-footer">
@using (Html.BeginForm())
{
@Html.AntiForgeryToken()
<button type="submit" value="Delete" class="btn btn-danger">Excluir</button>
}
</div>
</div><!-- /.modal-content -->
</div><!-- /.modal-dialog -->
TRECHO DO ERRO RETORNADO
Erro de Servidor no Aplicativo '/'.
O dicionário de parâmetros contém uma entrada nula para o parâmetro 'id_perfil' de tipo que não permite valor anulável 'System.Int32' para o método 'System.Web.Mvc.ActionResult Delete(Int32)' em 'Albasi.Atende.Web.Controllers.PerfilController'. Um parâmetro opcional deve ser um tipo de referência, um tipo que permite valor anulável ou declarado como opcional.
Nome do parâmetro: parameters
Eu estou tendo uma mensagem de erro quando tento fazer uma operação de exclusão de um registro, onde o controlador acusa não ter recebido a entrada do parâmentro. O que estou esquecendo?... segue fragmentos dos códigos:
CONTROLLER
public ActionResult Delete(int? id)
{
if (id == null)
{
return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
}
Perfil perfil = _contexto.Perfis.Find(id);
if (perfil == null)
{
return HttpNotFound();
}
return View(perfil);
}
[HttpPost, ActionName("Delete")]
[ValidateAntiForgeryToken]
public ActionResult Delete(int id_perfil)
{
string mensagem = string.Empty;
Perfil perfil = _contexto.Perfis.Find(id_perfil);
_contexto.Perfis.Remove(perfil);
_contexto.SaveChanges();
if (perfil != null)
{
mensagem = string.Format(" excluído com sucesso", perfil.nome_perfil);
}
return View(perfil);
}
TRECHO DA VIEW (Index)
<button class="btn btn-primary delete" data-id="@item.id_perfil"><i class="glyphicon glyphicon-trash"></i></button>
...
<script>
$(".delete").click(function () {
var id = $(this).attr("data-id");
$("#modal").load("Perfil/Delete?id=" + id, function () {
$("#modal").modal();
})
});
</script>
TRECHO DA VIEW (Delete)
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">×</span><span class="sr-only">Close</span></button>
<h4 class="modal-title"><i class="glyphicon glyphicon-user"></i> Excluir Perfil</h4>
</div>
<div class="modal-body">
<input type="hidden" />
<p>Deseja excluir o Perfil: <em><strong>@Html.DisplayFor(model => model.nome_perfil)</strong></em> ?</p>
</div>
<div class="modal-footer">
@using (Html.BeginForm())
{
@Html.AntiForgeryToken()
<button type="submit" value="Delete" class="btn btn-danger">Excluir</button>
}
</div>
</div><!-- /.modal-content -->
</div><!-- /.modal-dialog -->
TRECHO DO ERRO RETORNADO
Erro de Servidor no Aplicativo '/'.
O dicionário de parâmetros contém uma entrada nula para o parâmetro 'id_perfil' de tipo que não permite valor anulável 'System.Int32' para o método 'System.Web.Mvc.ActionResult Delete(Int32)' em 'Albasi.Atende.Web.Controllers.PerfilController'. Um parâmetro opcional deve ser um tipo de referência, um tipo que permite valor anulável ou declarado como opcional.
Nome do parâmetro: parameters
Marcelo Almeida
Curtir tópico
+ 0
Responder
Clique aqui para fazer login e interagir na Comunidade :)