asp.net-mvc-3 - 如何在 View 中显示 bool 值并将值保存到数据库

标签 asp.net-mvc-3

我有一个包含位值(真/假)的表

表定义:

CharacterID int 
isActive    bit 
UserId  uniqueidentifier

我有两个问题:

  1. 如何在下拉列表的编辑 View 中显示现有的选定选项
  2. 我需要将值(是/否)保存为 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/

相关文章:

asp.net-mvc-3 - 流畅的验证 - MVC 3

asp.net-mvc-3 - 处理重命名 Controller 的最佳方法

jquery - 创建 EditorTemplate MVC3

asp.net-mvc - 具有多个路由值的 Url.Action 助手的问题

c# - 根据对象与另一个对象的比较接近程度对对象列表进行排序

c# - 如何用EF4和Mysql比较小数

asp.net-mvc-3 - 通过单击两次提交避免在 Asp.net MVC 中重复提交表单

asp.net-mvc - 我应该让我的 ASP.NET MVC Controller 操作虚拟吗?

asp.net-mvc-3 - MVC3 - 使用 Razor 有条件地添加 id 元素

ajax - mvc 部分 View ajax 更新将部分 View 作为页面返回