I have a composite key table (PersonId and ProfissaoId). The PersonId property is in a hidden and ProfissaoId gets accumulated in a data-id. Stays two information must be passed to the controler so I can delete the record. Currently, I have this working, but only passing 1 parameter. How do I do this with two parameters?
Html - Razor:
<div class="form-group row align-items-center">
<div class="col-md-4">
@Html.HiddenFor(model => model.PessoasCargosViewModel[i].PessoaId, new { @class = "hid-pessoaId" })
<label asp-for="PessoasCargosViewModel[i].ProfissaoId" class="control-label sel-profissao">Profissão</label>
<select asp-for="PessoasCargosViewModel[i].ProfissaoId" asp-items="Model.Profissoes" data-plugin="selectpicker" title="Selecione uma opção" class="form-control show-tick show-menu-arrow sel-profissao"></select>
<span asp-validation-for="PessoasCargosViewModel[i].ProfissaoId" class="text-danger sel-profissao"></span>
</div>
<div class="col-md-2">
<div class="checkbox-custom checkbox-default">
<input type="checkbox" asp-for="PessoasCargosViewModel[i].CargoPrincipal" class="ckb-cargoPrincipal" autocomplete="off" />
<label asp-for="PessoasCargosViewModel[i].CargoPrincipal" class="ckb-cargoPrincipal">Cargo Principal</label>
</div>
</div>
<div class="col-md-1">
<button type="button" class="btn btn-icon btn-default btn-outline btn-remover-cargo" data-id="@Model.PessoasCargosViewModel[i].ProfissaoId" style="margin-top: 30px;"><i class="icon wb-trash" aria-hidden="true"></i></button>
</div>
</div>
JavaScript:
$("#div-cargos").on("click", ".btn-remover-cargo", function (e) {
e.preventDefault();
var id = $(this).attr("data-id");
if (id)
$.post("/pessoa-cargo/remover-pessoa-cargo/" + id);
$(this).parent().parent().remove();
qtdProfissoes--;
$("#div-cargos .row").each(function (indice, elemento) {
$(elemento).find(".sel-profissao").attr("name", "PessoasCargosViewModel["+ indice+"].ProfissaoId");
$(elemento).find(".ckb-cargoPrincipal").attr("name", "PessoasCargosViewModel["+ indice +"].CargoPrincipal");
});
});
Controller:
[HttpPost]
[Route("pessoa-cargo/remover-pessoa-cargo/{id:int}")]
public void DeletePessoaCargo(int id)
{
_pessoaCargoAppService.Remove(id);
}