编辑模板将List转换为String并返回

时间:2013-07-09 13:54:05

标签: c# asp.net-mvc model-binding mvc-editor-templates

我有一个对象列表的编辑器模板。 这为JQuery令牌输入提供了动力。因此,编辑器模板创建了一个由JQuery插件加载的Javascript数组。

当我再次提交该表单时,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/将“regionselector”输入转换为AJAX驱动的令牌建议输入。该输入的值最终为区域ID的CSV字符串。

所有这一切都正常。

提交表单时,它会尝试从输入转换String。进入列表并失败。无法将字符串转换为“Region”错误。

1 个答案:

答案 0 :(得分:0)

创建我自己的模型绑定器,但在属性级别上。 遵循这个SO答案: https://stackoverflow.com/a/12683210/1321662