获取ASP MVC中包含未知数量变量的帖子数据

eli*_*472 1 c# post asp.net-mvc-4

我有一个名为变量属性集的实体ExtendedProperty,它们有一个键和一个值.

在我的hz剃刀视图中,我有这个:

@if (properties.Count > 0)
{
    <fieldset>
        <legend>Extended Properties</legend>
            <table>
            @foreach (var prop in properties)
            {
                <tr>
                    <td>
                        <label for="Property-@prop.Name">@prop.Name</label>
                    </td>
                    <td>
                        <input type="text" name="Property-@prop.Name" 
                               value="@prop.Value"/>
                    </td>
               </tr>
            }
            </table>
        </fieldset>
}
Run Code Online (Sandbox Code Playgroud)

用户填写后,如何在控制器上访问此数据?有没有办法做到这一点,以便我可以使用模型绑定而不是手动html?

编辑=请注意我仍在使用模型,表单中还有其他东西可以使用类似的东西@Html.EditFor(m => m.prop).但我找不到一种方法来集成这些变量属性.

谢谢.

Joh*_*rco 5

您是否尝试过使用传递给控制器​​方法的FormCollection对象?

[HttpPost]
public ActionResult Index(FormCollection formCollection)
{
  foreach (string extendedProperty in formCollection)
  {
     if (extendedProperty.Contains("Property-"))
     {
       string extendedPropertyValue = formCollection[extendedProperty];
     }
  }

  ...
}
Run Code Online (Sandbox Code Playgroud)

我会尝试遍历该集合中的项目.