【发布时间】:2020-12-30 01:55:41
【问题描述】:
我的视图中有以下下拉列表:
@{
var listado = new List<SelectListItem>()
{
new SelectListItem()
{
Text ="YES",
Value ="1"
},
new SelectListItem()
{
Text = "NO",
Value = "2"
}
};
}
<div class="form-group">
<label class="control-label">Is it True ?</label>
@Html.DropDownList("miDropDownList",listado)
</div>
我想在控制器中获取选定的值“YES”或“NO”,如下所示:
IActionResult ControllerAction(){
var theValue = dropdownList.SelectedValue //this is pseudocode syntax but you understand I want to get
//the value
// with the value I will do something like this:
User userinstance = new User {
Id = 1,
Name = "john",
isJohnTall = theValue.Value
}
}
我希望其他答案中的一些简单的东西我见过绑定到模型的 DropDownLists,但我只想在下拉列表中选择字符串并能够在控制器中对它们做一些事情。
【问题讨论】:
-
绑定到模型有什么问题?
-
数据库设计不好,所以我要填充的字段是字符串,而不是应该是布尔值,因为它是一个是或不是属性,所以让我感到困惑,我认为这会更容易接受或不接受,然后当我创建要添加到表中的用户实例时,我传递了 ots 值。老实说,我对如何将 Dropdown 链接到模型中的属性也有点困惑。 .
-
听起来您需要一个与您的 ef 实体模型分开的视图模型。你可以在那里进行转换。或者您可以使用 HasConversion() 映射您的 ef 模型属性以将字符串映射到 bool
-
这就像拥有一个模拟模型?然后将模拟模型属性传递给真实模型的新实例?
-
无论如何我没有办法捕捉用户选择的内容并在我的控制器中使用它吗?我的意思是我正在制作一个表格以在数据库中发布一个寄存器,而只是该属性是一个选择标签,我认为这很简单。我不想映射或变得复杂
标签: asp.net-core razor asp.net-core-mvc