c# - 调用创建控件时 Viewbag 返回 null
问题描述
我的 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);
,值为 null
我的观点:
<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>
解决方案
推荐阅读
- javascript - 从参数中的对象中删除属性与从对象中删除属性
- c# - 在 xamarin.forms (ios) 中启动演示应用程序时出错
- excel - 是否可以编写一个 MS Excel 将打开并显示带有千位分隔符的数字的文本文件?
- ios - ios AppDelegate.swift 上的 simple_auth_flutter 导入更改无法启动
- javascript - IntersectionObserver 无法向上滚动
- javascript - Javascript 从字符串中提取锚标记并从中创建新的 React 组件
- javascript - 在 React Native 中使用 position: 'Absolute' 和 display: 'None' 仍然会渲染组件
- azure-devops - 我在 Azure DevOps 中安装了交付计划(作为 Marketplace 的扩展),但在 Boards 菜单中看不到
- javascript - 如何提交动态表单
- node.js - mongoose、mongodb 和节点应用程序中的日期格式