我有一个包含位值(真/假)的表
表定义:
CharacterID int
isActive bit
UserId uniqueidentifier
我有两个问题:
- 如何在下拉列表的编辑 View 中显示现有的选定选项
- 我需要将值(是/否)保存为 true 和 false 在数据库中。
这是我到目前为止所做的尝试:
<div class="editor-label">
@Html.LabelFor(model => model.IsActive)
</div>
<div class="editor-field">
@Html.DropDownList("", new SelectListItem[] { new SelectListItem() { Text = "Yes", Value = "true", Selected = Model.IsActive }, new SelectListItem() { Text = "No", Value = "false", Selected = !Model.IsActive }})
</div>
最佳答案
假设 model.IsActive 声明为 bool
:
使用复选框对用户来说不是更直观并且需要更少的点击吗? 在这种情况下,您可以使用:
@Html.EditorFor(model => model.IsActive)
如果你真的想要下拉菜单,那么这个SO可能会提供一个有效的实现:https://stackoverflow.com/a/4036922/1373170
应用到您的上下文,我相信它会是:
@Html.DropDownListFor(model => model.IsActive, new SelectList(new SelectListItem[] { new SelectListItem() { Text = "Yes", Value = "True" }, new SelectListItem() { Text = "No", Value = "False"}}, model.IsActive.ToString())
现在,为了将其保存到数据库,我必须知道您是否使用 EF、L2S 等。
但我想您的 Controller 中已经设置了一个用于保存的操作。在这种情况下,它可能已经接收到模型的实例作为参数。使用 DropDownListFor 而不是 DropDownList,您的模型应该由 MVC 的默认 ModelBinder
自动绑定(bind),并且您应该能够将其映射到数据库实体并存储它。
关于asp.net-mvc-3 - 如何在 View 中显示 bool 值并将值保存到数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11371590/