C# MVC 3复选框到数据库
我希望创建一个带有下拉框的视图,下拉框列出数据库表中的编程语言。这我没有问题,但我也希望10个复选框称为1级到10级。现在这10个级别已经在db中的一个单独的表中,每个级别都有自己的id等 我的问题是,如何创建一个页面,让您选择一种语言,然后选择级别2和级别3,例如,然后将它们添加到另一个db表中,该表使用外键表示语言和级别表?我知道一开始这听起来很简单,但我需要创建一个控制器来检查检查并添加哪些级别。复杂的是,每种语言都有不同的技能范围,并非都是从1开始到10结束 以下是表格示例: 语言ID 语言名称 级别ID 级别名称 映射ID 类语言 LevelIDC# 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
谢谢 您需要为每个实体创建模型。然后,在控制器中,将模型发送到视图,如下所示:
'
' 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?谢谢