MVC EditforTemplate:索引呈现错误

时间:2014-11-19 08:33:29

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

在EditorTemplates中,我有一个接受模板List<string>的模板。这应该为列表中的每个字符串创建一个文本框。

在模型中,属性具有[UIHint("EditList")]。现在当我将它呈现给页面时,模板被正确调用,但索引设置错误。当我提交表格时,我得到:

MyList.[0]:test123

而不是

MyList[0]:test123

我正在使用MVC 3!,在我使用MVC 5的测试项目中使用相同的代码

查看:

<div class="col-md-10">
    @Html.EditorFor(model => model.MyList)
    @Html.ValidationMessageFor(model => model.MyList)
</div>

型号:

public class FormTest
    {
        [UIHint("EditListWithAddButton")]
        public List<string> MyList { get; set; }
    }

EditorForTemplate:

@model List<string>
<div class="EditListWithAddButton">
    <ul>
        @for (int i = 0; i < Model.Count(); i++)
        {
            <li>@Html.EditorFor(model => Model[i])</li>
        }
    </ul>
</div>

1 个答案:

答案 0 :(得分:0)

蛮力解决方案,但是,没有时间进行调试......

@Html.Raw(@Html.EditorFor(model => Model[i])
.ToString().Replace("__", "_").Replace(".[", "["))

这将取代Editfortempalt,索引再次正确......

如果有人有更好的解决方案/可以解释问题,请告诉我