如何使用淘汰的foreach元素并发布它们?

时间:2014-09-28 12:03:38

标签: javascript knockout.js foreach

我想使用HTTP post模式提交数据,但我的表单数据是konckout foreach结果。像这样:

<input type="hidden" name="testFlag" value="flag"/>
    <div data-bind="foreach: users">
     <input type="hidden" data-bind="name:'UserID['+$index+']',value:user.Guid"/>
     <input type="hidden" data-bind="name:'UserName['+$index+']',value:user.name"/>
     ...
     </div>

我需要提交清单。 UserController无法获取请求值,但testFlag具有值。你有任何建议或细节材料吗?

谢谢大家的回复!

1 个答案:

答案 0 :(得分:3)

您需要在绑定中修复以下内容:

  • 没有内置name绑定出口,您需要使用attr binding设置name属性

  • $index是一个可观察的,因此您需要编写$index()以在表达式中获取其值。

  • APS.NET MVC在绑定到列表时需要以下命名约定:yourListPropertyName[index].propertyName另见Model binding to a list

将所有内容放在一起的正确语法是(假设在您的控制器参数中,List存储在名为Users的属性中):

 <input type="hidden" data-bind="attr: { name: 'Users['+$index()+'].UserID' }, value:user.Guid"/>
 <input type="hidden" data-bind="attr: { name: 'Users['+$index()+'].UserName'}, value:user.name"/>