2015-10-05 69 views
-1

在我的.cshtml文件分離插入複選框值數據庫,我有這樣的形式複選框:用逗號

<div class="checkbox"> 
    <label> 
     <input type="checkbox" value="Clothing" name="Child1GiftTypeNeed" checked> 
      Clothing 
    </label> 
</div> 
<div class="checkbox"> 
    <label> 
     <input type="checkbox" value="Shoes" name="Child1GiftTypeNeed"> 
      Shoes 
    </label> 
</div> 
<div class="checkbox"> 
    <label> 
     <input type="checkbox" value="Coat/Jacket" name="Child1GiftTypeNeed"> 
      Coat/Jacket 
    </label> 
</div> 
<div class="checkbox"> 
    <label> 
     <input type="checkbox" value="Books" name="Child1GiftTypeNeed"> 
     Books 
    </label> 
</div> 

如何插入用逗號分隔這些複選框在一個單一的數據庫列中的值?

(我是一個全新的C#學習)

這是我從代碼隱藏插入:

[HttpPost] 
[ValidateAntiForgeryToken] 
public ActionResult Index([Bind(Include = "Id,Child1GiftTypeNeed")] HGProgram hgProgram) 
{ 
    if (ModelState.IsValid) 
    { 
     //Save to my database 
     db.HGPrograms.Add(hgProgram); 
     db.SaveChanges(); 
    } 
} 
+0

你能否說出這個問題? –

回答

0

你需要一個視圖模型。有了這一點,你就可以從列表映射到/字符串:

public class HGProgramViewModel 
{ 
    // other HGProgram properties you want to edit 

    public string Child1GiftTypeNeed { get; set; } 

    public List<string> Child1GiftTypeNeedList 
    { 
     get 
     { 
      !string.IsNullOrWhiteSpace(Child1GiftTypeNeed) 
       ? Child1GiftTypeNeed.Split(',').ToList() 
       : new List<string>(); 
     } 
     set 
     { 
      Child1GiftTypeNeed = value != null 
       ? string.Join(",", value) 
       : null; 
     } 
    } 
} 

然後,在你看來,你只需要命名字段Child1GiftTypeNeedList[]。無論如何,索引編制語法[]都是必需的,因爲您現在的方式只會發佈一個複選框值(頁面上的最後一個複選框)。