Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/279.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# MVC 3复选框到数据库_C#_Asp.net Mvc_Checkbox_Data Persistence - Fatal编程技术网

C# MVC 3复选框到数据库

C# MVC 3复选框到数据库,c#,asp.net-mvc,checkbox,data-persistence,C#,Asp.net Mvc,Checkbox,Data Persistence,我希望创建一个带有下拉框的视图,下拉框列出数据库表中的编程语言。这我没有问题,但我也希望10个复选框称为1级到10级。现在这10个级别已经在db中的一个单独的表中,每个级别都有自己的id等 我的问题是,如何创建一个页面,让您选择一种语言,然后选择级别2和级别3,例如,然后将它们添加到另一个db表中,该表使用外键表示语言和级别表?我知道一开始这听起来很简单,但我需要创建一个控制器来检查检查并添加哪些级别。复杂的是,每种语言都有不同的技能范围,并非都是从1开始到10结束 以下是表格示例: 语言ID

我希望创建一个带有下拉框的视图,下拉框列出数据库表中的编程语言。这我没有问题,但我也希望10个复选框称为1级到10级。现在这10个级别已经在db中的一个单独的表中,每个级别都有自己的id等

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

以下是表格示例:

语言ID 语言名称

级别ID 级别名称

映射ID 类语言 LevelID


谢谢

您需要为每个实体创建模型。然后,在控制器中,将模型发送到视图,如下所示:

'
' 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
然后,您需要从文章的视图中获取模型,如下所示:

'
' 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
'
'POST:/MyController/MyAction
_
公共函数MyAction(ByVal模型作为MyModel)作为ActionResult
如果ModelState.IsValid,则
'通过像这样访问模型来更新数据库
Dim db As Languages=新语言数据库上下文
作为新语言的模糊语言
language.Name=model.Name
db.Languages.Add(语言)
db.SaveChanges()
如果结束
端函数

当然,请在

上阅读mvc,因为我不知道如何实现控制器。所以我想我在这里问一些想法。我是MVC和C#的新手,到目前为止我只做过dropdownlist和autocomplete文本框之类的事情。如果你是MVC新手,你可以从这里开始:阅读一些教程,观看一些视频,试用一些东西。然后展示您在这里尝试过的内容,这样我们就可以有一个共同的讨论基础,看看我们如何帮助您改进代码并实现某些方面。我已经看过那里的教程,但似乎没有一个是关于我需要的。所有在线帮助都只涉及复选框的标准用法。我们不希望得到您需要的确切代码。由你来写。你应该做的是学习这些概念,以便自己能够写出这段代码。那么,你尝试过什么呢?你想和我们分享一些代码吗?无代码=>无帮助。是的,我已经使用下拉列表将内容添加到数据库中。一切正常。我的问题是将复选框称为级别5到级别8,然后添加它们。我是否需要为选中的循环创建一个for-each循环,然后手动添加文本,表示级别,然后是勾选框的Id?如我所示,我将为所有复选框创建一个模型,并将它们发送到视图。您还可以使用for each循环创建复选框列表,并将该列表发送到您的视图。啊,对了,那么当您选择所选框时,它会使用viewmodel获取所选级别的ID?谢谢