调用创建控件时,Viewbag返回null

时间:2019-01-21 14:48:43

标签: c# asp.net model-view-controller viewbag

我的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>

0 个答案:

没有答案