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
/ unbind
jQuery 方法。