我已将代码上传到pastebin,这是链接:
当我提交表单时,我使用的列表不会绑定到我的ViewModel。
但是当我将ViewModel发送到视图时,它使用EditorFor渲染得很好。我已经读过,当使用EditorTemplates时,它应该适当地命名List,以便它们在回发时自动绑定到ViewModel。
HTML输出可以在这里看到:
请注意,ViewModel派生自ShowQuestionViewModel,它包含一些字符串。这些字符串完美绑定。
这是我一直关注的教程:
http://jarrettmeyer.com/post/2995732471/nested-collection-models-in-asp-net-mvc-3
在本教程中,MVC框架知道如何在ViewModel中绑定列表。
以下是一些调试器输出:
Controller将ShowQuestionViewModel作为参数:
http://imageshack.us/photo/my-images/803/debug.jpg
Controller将FormCollection作为参数:
http://imageshack.us/photo/my-images/542/formcollection.png
将List和FormCollection作为参数的不同控制器:
http://imageshack.us/photo/my-images/685/listtest.png
不要放弃我们!
谢谢!
我自己找到了这个解决方案。我忘了在ShowMatrixQuestionViewModel中使用属性作为行和列列表。此外,ActionController不会在没有TryUpdateModel()的情况下绑定,所以感谢@Adam Tuliper和其他人。
答案 0 :(得分:0)
既然您提到了列表,您确定您的模型在回发时包含所有预期的项目吗?另请记住,如果您在发布后显示数据而不是重定向,则HTML帮助程序也将使用modelstate来绑定数据。