2012-08-14 63 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