我有一个包含标签列表的申请人模型:
public class Applicant
{
public virtual IList<Tag> Tags { get; protected set; }
}
提交表单时,有一个输入字段,其中包含用户输入的以逗号分隔的标签列表。我有一个自定义模型绑定器将此列表转换为集合:
public class TagListModelBinder : IModelBinder
{
public object BindModel(ControllerContext controllerContext, ModelBindingContext bindingContext)
{
var incomingData = bindingContext.ValueProvider.GetValue("tags").AttemptedValue;
IList<Tag> tags = incomingData.Split(',').Select(data => new Tag { TagName = data.Trim() }).ToList();
return tags;
}
}
但是,当我的模型被填充并传递到 POST 上的控制器操作时,Tags 属性仍然是一个空列表。知道为什么它没有正确填充列表吗?