2012-08-14 66 views
0

我期待创建一个下拉框,列出数据库中的表编程语言的视图。这我没有问题,但我也想要10个复选框,称为1级至10级。现在这10个级别已在分贝中的一个单独的表中,每个都有自己的ID等。MVC 3复选框到数据库

我的问题是,我如何创建一个页面让您选择一种语言,然后选择2级和3级,然后将它们添加到另一个具有外键的数据库表中以用于语言和级别表?我首先知道这听起来很简单,但我需要创建一个控制器来检查检查哪些级别并添加它们。复杂的部分是每一种语言都有不同范围的技能,不是所有的从1开始和结束于10

下面是表的示例:

语言ID 语言名称

级别ID 级别名称

映射ID为 语言ID LevelID。

谢谢!

+1

你已经试过了什么? – 2012-08-14 20:17:11

+0

什么都没有,因为我没有任何想法如何实现控制器。所以我想我在这里问一些想法。我是MVC和C#的新成员,到目前为止,我只做了诸如dropdownlist和自动完成文本框之类的东西。 – user1586899 2012-08-14 20:20:54

+0

如果你是MVC的新手,你可以从这里开始:http://asp.net/mvc阅读一些教程,观看一些视频,试用一些东西。然后展示您在此尝试的内容,以便我们可以有一个共同的讨论基础,并了解我们如何帮助您改进代码并实现某些方面。 – 2012-08-14 20:21:25

回答

0

您需要为每个实体创建模型。然后,在你的控制,发送模式,以这样的观点:

' 
' GET: /MyController/MyAction 

Public Function MyAction() As ActionResult 
    Dim db = New LanguageDbContext 
    ViewBag.Language = New SelectList(db.Languages, "LanguageId", "Name") 

    Dim db1 = New LevelsDbContext 
    ViewBag.level = New SelectList(db1.Levels, "LevelId", "Name") 
    Return View() 
End Function 

然后,你需要从帖子上的观点得到了模型,就像这样:

' 
' POST: /MyController/MyAction 

<HttpPost()> _ 
Public Function MyAction(ByVal model As MyModel) As ActionResult 
    If ModelState.IsValid Then 
     ' update your database by accessing model like this 
      Dim db As Languages = New LanguageDbContext 
      Dim language As New Language 
      language.Name = model.Name 

      db.Languages.Add(language) 
      db.SaveChanges() 
    End if 
End Function 

当然,阅读up on mvc at http://asp.net/mvc

+0

是的,我已经添加到数据库使用下拉列表罚款罚款。一切正常。我的问题是有复选框称为5级到8级,然后添加它们。我是否需要一个循环遍历选定的循环,然后手动添加说文本级别然后选择复选框的ID? – user1586899 2012-08-14 20:36:17

+0

就像我展示的那样,我会为您的所有复选框创建一个模型并将它们发送到视图。您也可以使用for循环创建复选框列表,并将列表发送到您的视图。 – user1477388 2012-08-14 20:41:35

+0

啊对了,所以当你选择所选框时,它使用视图模型来获取所选Level的ID?谢谢 – user1586899 2012-08-14 20:45:28