我有一个对象列表的编辑器模板。这为 JQuery 令牌输入提供动力。因此,编辑器模板创建了一个 Javascript 数组以供 JQuery 插件加载。
当我再次提交该表单时,POST 数据显示为逗号分隔的字符串。所以不绑定并抛出无法转换的异常。
在这种情况下,将数据返回到我的控制器并拥有有效的 ViewModel 的最佳实践是什么?
编辑器模板
@model List<SEISMatch.DAL.Entities.Region>
<script type="text/javascript">
var existingRegions = [
@if(Model!=null){
foreach(var region in Model){
if(region!=null){
@:{ id: @region.Id, name: "@region.Title" },
}
}
}
];
</script>
<input type="text" id="regionselector" name="@ViewData.TemplateInfo.GetFullHtmlFieldName("")">
有一个http://loopj.com/jquery-tokeninput/将“区域选择器”输入转换为 AJAX 驱动的令牌建议输入。该输入的值最终作为区域 ID 的 CSV 字符串。
所有这些都正常工作。
提交表单时,它会尝试从输入转换字符串。进入列表并失败。无法将字符串转换为“区域”错误。