我的viewbag在视图上正确显示了值,但是当调用创建控件时,这些值为null,因此,由于这些值是另一个表中的外键,因此会出现异常:
SqlException:INSERT语句与FOREIGN KEY>约束“ FK_dbo.INFO_APONTAMENTO_dbo.BARCO_Barco_Id”发生冲突。在数据库“ RVEIO”的表“ dbo.BARCO”的“ Id”列中发生了冲突。
代码如下:
public ActionResult Create()
{
ViewBag.SubCodigos = new SelectList(_subCodigosOperacionaisRepository.GetAll(), "Id", "Codigo");
ViewBag.Codigos = new SelectList(_codigosOperacionaisService.GetAll(), "Id", "Codigo");
ViewBag.LocalDaOperacao = new SelectList(_localDaOperacaoAppService.GetAll(), "Id", "Nome");
ViewBag.Barcos = new SelectList(_barcoRepository.GetAll(), "Id", "Nome");
return View();
}
[HttpPost]
public ActionResult Create(ApontamentoViewModel apontamentoViewModel)
{
if (!ModelState.IsValid)
{
return View(apontamentoViewModel);
}
ViewBag.Codigos = new SelectList(_codigosOperacionaisService.GetAll(), "Id", "Codigo", apontamentoViewModel.InfoApontamento.CodigosDeOperacao_Id);
ViewBag.SubCodigos = new SelectList(_subCodigosOperacionaisRepository.GetAll(), "Id", "Codigo", apontamentoViewModel.InfoApontamento.SubCodigosDeOperacao_Id);
ViewBag.LocalDaOperacao = new SelectList(_localDaOperacaoAppService.GetAll(), "Id", "Nome", apontamentoViewModel.InfoApontamento.LocalDaOperacao_Id);
ViewBag.Barcos = new SelectList(_barcoRepository.GetAll(), "Id", "Nome", apontamentoViewModel.InfoApontamento.Barco_Id);
var apontamento = _apontamentoAppService.Add(apontamentoViewModel);
}
当
var apontamento = _apontamentoAppService.Add(apontamentoViewModel);
被调用,值变为空
我的观点:
<div class="col-md-10">
@Html.DropDownList("Codigos", String.Empty)
@Html.DropDownList("SubCodigos", String.Empty)
@Html.DropDownList("LocalDaOperacao", String.Empty)
@Html.DropDownList("Barcos", String.Empty)
</div>