ASP.NET MVC 的集合模型绑定需要名称属性中的方括号索引<input />才能正确绑定集合模型,例如<input name="Lines[0].Name" />,使用如下操作:
public ActionResult Create(IEnumerable<MyInputModel> Lines) {
// ...
}
但是,名称属性中的句点和方括号是某些 jQuery 插件的一个已知问题,包括我正在使用的Select2列表选择器。
由于我不想破解 Select2,我如何告诉 ASP.NET MVC 使用句点或下划线而不是方括号来分隔集合索引,例如<input name="Lines.0.Name" />?
注意:我正在使用这个集合模型绑定技术来生成非顺序Guid索引,所以我已经声明了一个自定义的HtmlFieldPrefixScope.
更新:我通过破解 Select2 事件中的自定义滚动/调整大小事件名称来解决这个问题,这些事件将无效[或]字符传递给bind/ unbindjQuery 方法。