asp.net-core - asp.net core 下拉列表未设置所选值
问题描述
我有一个引导下拉菜单,我正在使用标签助手输入渲染值并在发布时读取它们。下面是代码
asp-for="CfgType" -- 值设置为 SIN 或 UN 基于将视图设置为选定值 -- 在提交页面时,我需要从 CfgType 属性中获取下拉列表的选定值。
<div class="form-row">
<div class="col-md-12">
<div class="form-group form-group--float">
<div class="form-group form-group--float">
<select id="dwType" class="form-control custom-select" asp-for="CfgType">
@if(Model.VehFlg)
{
<option value="SIN">Serial Num</option>
}
@if(Model.VinFlg)
{
<option value="UN">Unit Number</option>
}
</select>
<label> Configuration Type</label>
<div class="invalid-tooltip"><span asp-validation-for="CfgType"></span></div>
</div>
<i class="form-group__bar"></i>
</div>
下面是如何尝试使用控制器检索值
//现在 fvIdentViewModel.CfgType 为空
[Route("/fv-identification/Save"), HttpPost, ValidateAntiForgeryToken]
public IActionResult Save(FleetVehicleIdentificationViewModel fvIdentViewModel)
{
}
解决方案
这是一个工作演示:
模型:
public class FleetVehicleIdentificationViewModel
{
public string CfgType { get; set; }
public bool VehFlg { get; set; }
public bool VinFlg { get; set; }
}
查看(索引.cshtml):
@model FleetVehicleIdentificationViewModel
<form action="/fv-identification/Save" method="post">
@Html.AntiForgeryToken()
<div class="form-row">
<div class="col-md-12">
<div class="form-group form-group--float">
<div class="form-group form-group--float">
<select id="dwType" class="form-control custom-select" asp-for="CfgType">
@if (Model.VehFlg)
{
<option value="SIN">Serial Num</option>
}
@if (Model.VinFlg)
{
<option value="UN">Unit Number</option>
}
</select>
<label> Configuration Type</label>
<div class="invalid-tooltip"><span asp-validation-for="CfgType"></span></div>
</div>
<i class="form-group__bar"></i>
</div>
<div>
<input type="submit" value="create" />
</div>
</div>
</div>
</form>
控制器:
为了便于测试,我手动设置了值以呈现您的Index.cshtml
:
public IActionResult Index()
{
var model = new FleetVehicleIdentificationViewModel()
{
VehFlg = true,
VinFlg = false
};
return View(model);
}
您的帖子操作:
[Route("/fv-identification/Save"), HttpPost, ValidateAntiForgeryToken]
public IActionResult Save(FleetVehicleIdentificationViewModel fvIdentViewModel)
{
//do your stuff...
}
推荐阅读
- angular - 如何定期从后端 SignalR 的新时间数据更新时钟
- scala - 当它被扩展时,它是特征的一部分吗?
- c# - 我无法将列表视图项目保存到数据库
- scroll - 无法在移动设备上使用 OpenLayers 地图滚动页面
- testing - KoinAppAlreadyStartedException:一个 Koin 应用程序已经启动
- joomla - 如何修复“Chrome 问题网站无法正确加载 (Joomla)”
- laravel - 我的视图不在控制器中呈现,但在路由中调用视图时在路由中工作
- c# - C# EasyModbusTCP.NET 与基恩士 PLC 的通信
- rest - 如何将 api-key 与 jwt 和烧瓶 restplus 一起使用
- php - Laravel 关系多个 where has