我想使用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具有值。你有任何建议或细节材料吗?
谢谢大家的回复!
答案 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"/>