0

我有一个这样的模型

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

我需要一个简单的视图来创建模型,但我不知道如何将逗号分隔的标签列表从视图传递到控制器,然后将模型与标签列表一起保存。我在类似的帖子中看到了一个使用 text.Split(',') 的解决方案,但我的问题是我不知道如何将输入文本传递给创建操作。我正在使用 ASP MVC 4。对不起,如果这是基本的,但我是 ASP MVC 的新手。提前致谢。

4

2 回答 2

1

我不确定我是否理解你的问题(它真的很模糊),但你可以创建一个 ViewModel,它有一个名为 'Tags' 的字符串属性(逗号分隔的数据),你为这个 ViewModel 创建一个表单(你可以使用 Html .EditorForModel),并在您的控制器中简单地将您的 ViewModel 转换为具有标签列表的实体,方法是将字符串拆分为数组。

于 2012-09-29T23:40:23.943 回答
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
 }
于 2012-09-30T18:04:10.157 回答