MVC3“动态”参数列表模型和视图

时间:2011-08-18 15:55:45

标签: asp.net-mvc asp.net-mvc-3

需要一个创建视图的手/指南来处理我们在运行时获取名称的参数列表,目前在回发期间它使用MVC html助手不会返回任何内容。

我的模特

public class Parameter {
  public string Name {get; set;}
  public string Value {get; set;}
}  

public class Job {
  public List<Parameter> parameters {get; set;}
}

我的观点

添加视图

@model Models.Job
@using (Html.BeginForm("Add","Job")) {
  @foreach (var parameter in Model.Parameters)
  {
    @Html.Action("AddParameter","Job", parameter)
  }
 </fieldset>
}

AddParameter View

@model Models.Parameter

<div class="editor-label">
    <label for="@Model.Name">@Model.Name</label>
</div>
<div class="editor-field">
    @Html.EditorFor(model => model.Value)
</div>

当此get被发回到下面的控制器时,列表不会被填充。我想我可能完全以错误的方式解决它,但不知道如何真正实现它。似乎“动态”参数概念是真正抛弃我的东西。这种方法会起作用吗?我有些不对劲吗?或者我需要看另一种做法吗?

控制器

[HttpPost]
public ActionResult Add(Job model)
{
    //Do Something
    return PartialView();
}

1 个答案:

答案 0 :(得分:2)

您的问题与从视图中返回列表有关...请查看Phil Haack的这篇文章:

Model Binding To A List

在这里你可以看到我遇到了同样的问题。建议的解决方案引导我朝着正确的方向发展但不是我使用的解决方案,我使用了Phil的帖子。

My Post

希望这会有所帮助......

编辑:澄清一下,您需要做的是将AddParameter视图更改为EditorTemplate,并按照Phil上面的说明使用它。