2012-03-28 100 views
1

嗨,我很安静的使用C#的MVC 3。我使用实体框架和数据库优先方法自动生成代码。但问题是,我试图找到有关使用C#代码在MVC3中插入复选框的信息,但我无法获得有用的网站。 我可以用HTML代码中插入的复选框:如何在MVC 3中实现复选框?

<input type="checkbox" name="Science" id="s1" value="Science" /> 
<input type="checkbox" name="Biology" id="b1" value="Biology" /> 
<input type="checkbox" name="Chemistry" id="c1" value="Chemistry" /> 

但是我怎么插入数据库中的复选框值和验证,只有一个单一的复选框被选中?

e.g我有一个表命名为Paper在那里我有:

Paper_Title - textbox 
Paper_Details - textbox 
Category - Checkboxes (e.g. Science, biology, chemistry) 
Comments - textbox. 
Submit-button 
+0

您的html示例中的“Checkboxes”实际上是“Textboxes”。类型=“文本”? – Robbie 2012-03-28 19:05:12

回答

1

使用单选按钮,然后对分类(说enumCategories)枚举。有一个类型为enumCategories的模型类别,然后在回发中设置基于哪个单选按钮被检查的模型。 希望这可以让你对这种方法有一个详尽的想法。

1

我不认为复选框是你在这里需要的,它们更多地用于多选项目。无论是单选按钮还是下拉菜单都更适合。就个人而言,我会说一个下拉对你更好,因为有已经为它建立一个编辑模板,例如:

型号:

我已经添加了以下内容特性

public string Category { get; set; } 
public IEnumerable<SelectListItem> Categories { get; set; } 

在load方法我已经放了两个样品类别有:

Categories = new List<SelectListItem> 
      { 
       new SelectListItem 
       { 
        Selected = false, 
        Text = "Chemistry", 
        Value = "Chemistry" 
       }, 
       new SelectListItem 
       { 
        Selected = false, 
        Text = "Science", 
        Value = "Science" 
       } 
      }; 

查看:

@Html.DropDownListFor(m => Model.Category, Model.Categories) 
+0

当我输入它显示一个错误“public IEnumerable Categories {get; set;} ”错误 - 引用缺失。 – Shaan 2012-03-31 14:01:56

+0

您将需要对System.Web.Mvc和System.Collections.Generic的使用引用 – mattytommo 2012-03-31 15:41:07