2012-09-29 50 views
0

我有這樣創建的標籤列表模式MVC

public class Local 
{ 
    public int Id { get; set; } 
    public string Name{ get; set; } 
    public List<string> Tags{ get; set; } 
} 

我需要一個簡單的視圖中創建一個模型的模型,但我不知道如何通過從逗號分隔標籤列表查看控制器,然後用標籤列表保存模型。我在類似的帖子中看到了一個使用text.Split(',')的解決方案,但是我的問題是我不知道如何將輸入文本傳遞給create動作。我正在使用ASP MVC 4.對不起,如果這是基本的,但我是新的ASP MVC。 在此先感謝。

+0

那麼你想要的視圖是什麼樣的?它是一個複選框列表,還是像SO這樣的奇特的自動完成令牌輸入字段? – millimoose

+0

沒什麼奇特的,只是每個字段的典型輸入文本 –

回答

1

我不確定我是否理解你的問題(它確實含糊),但你可以創建一個名爲'Tags'(逗號分隔數據)的字符串屬性的ViewModel,你爲這個ViewModel創建一個表單你可以使用Html.EditorForModel),並且在你的控制器中簡單地將你的ViewModel轉換爲具有標籤列表的實體,方法是將字符串拆分成一個數組。

+0

事情是,我用腳手架創建了所有我的視圖,但在創建視圖中,Visual Studio不會爲列表屬性創建代碼,所以我有點兒困惑 –

+0

哦好的,我明白你的答案..謝謝 –

0
// Parse the string 
string[] list = commaSeparatedListString.Split(","); 

foreach(var tag in list) { 
    <input type="text" name="tags" value="@tag" /> 
} 

// In controller 
// (the HTML Form will pass an array of values if there is more than one input tag with the same name) 
[HttpPost] 
public ActionResult(int id, string name, string[] tags) 
{ 
    // Save the tags 
    // Use string.Join("," tags) to get your comma separated list back 
}