2014-09-28 55 views
2

我想使用HTTP post模式提交数据,但我的表单数据是konckout foreach结果。像这样:如何使用敲除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

你真的检查过最后的标记吗?我认为正确的绑定应该是这样的:'... data-bind =“attr:{'name':'UserName ['+ $ index +']'},...' – 2014-09-28 12:11:13

+0

'UserController' action signature? – nemesv 2014-09-28 12:21:34

回答

3

你需要修复您的绑定以下的事情:

  • 有没有在name约束力的退出而建,您需要使用attr binding设置name属性

  • $index是所以您需要编写$index()以在表达式中获取其值。 yourListPropertyName[index].propertyName也看到了Model binding to a list

全部放在一起正确的语法(假设在你的控制器参数列表存储:绑定到列表时

  • APS.NET MVC需要以下命名约定在属性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"/> 
    
  • +0

    嗨Nemesv,非常感谢你,你很专业。 – Shukun 2014-09-29 03:03:44

    相关问题