c# - 如果值为字符串,则 ASP.NET Core SelectList 不绑定
问题描述
ViewData["ComponenteId"] = new SelectList(await GetComponentes(Geometria.MatrizId), "Nome", "Nome", Geometria.Componente);
这是视图
<div class="form-row">
<div class="form-group col-md-4">
<label asp-for="Geometria.Componente" class="control-label"></label>
<select asp-for="Geometria.Componente" class="custom-select" asp-items="ViewBag.ComponenteId">
<option value="">Selecione um Componente</option>
</select>
<span asp-validation-for="Geometria.Componente" class="text-danger"></span>
</div>
</div>
不管它不会绑定,我不明白为什么值和文本基本上是相同的属性。
这就是它在 html 中的呈现方式
<select class="custom-select input-validation-error" data-val="true" data-val-required="The Componente POE field is required." id="Geometria_Componente" name="Geometria.Componente" aria-describedby="Geometria_Componente-error" aria-invalid="true">
<option value="">Selecione um Componente</option>
<option value="M130291">M130291</option>
<option value="M130559">M130559</option>
<option value="M140004">M140004</option>
<option value="M140040">M140040</option>
<option value="SA00367A300">SA00367A300</option>
<option value="SS98940A100">SS98940A100</option>
</select>
更新
似乎它没有绑定它的原因是因为该值甚至在我开始使用 Entity Framework Core 之前就有空格。旧的数据类型是 varchar,因此它无法识别它。
解决方案
推荐阅读
- python - 允许用户定义变量,并替换为值
- bash - 从带有 x-terminal-emulator 的 bash 脚本启动时,Google Datastore Emulator 进程失效,我该如何防止这种情况发生?
- flask - 烧瓶从另一个表中删除项目
- android - 如果应用程序未关闭,则每次运行时都会向应用程序添加多个线程
- javascript - jQuery 脚本阻止 HTML 在 Woocommerce 主题中加载
- swift - 无法从闭包中修改类的变量
- c# - 在 sqrt 之前添加距离条件是否会提高此代码的性能?
- c# - 两个 Html.EnumDropdownListFor 指令用于模型的 2 个枚举属性,一个不工作另一个
- go - golang servehttp 调用自己?
- reactjs - 准备请求的页面盖茨比