我正在尝试在Create
视图中显示一个类对象,其中属性为ICollection<string>
。
例如......
namespace StackOverflow.Entities
{
public class Question
{
public int Id { get; set; }
....
public ICollection<string> Tags { get; set; }
}
}
如果视图就像StackOverflow'问一个问题'页面,Tags
html元素是一个input box
..我不知道如何在ASP中做到这一点.NET MVC3视图?
有什么想法吗?
我尝试使用EditorFor
,但浏览器中没有显示任何内容,因为它不确定如何呈现字符串集合。
答案 0 :(得分:6)
首先使用[UIHint]
属性修饰您的视图模型:
public class Question
{
public int Id { get; set; }
[UIHint("tags")]
public ICollection<string> Tags { get; set; }
}
然后在主视图中:
@model StackOverflow.Entities.Question
@Html.EditorFor(x => x.Tags)
然后您可以编写自定义编辑器模板(~/Views/Shared/EditorTemplates/tags.cshtml
):
@model ICollection<string>
@Html.TextBox("", string.Join(",", Model))
或者如果您不喜欢装饰,您还可以直接在视图中指定要用于给定属性的编辑器模板:
@model StackOverflow.Entities.Question
@Html.EditorFor(x => x.Tags, "tags")