Модель и представление списка параметров MVC3 "Dynamic" - PullRequest
2 голосов
/ 18 августа 2011

Нужна рука / руководство по созданию представления, которое обрабатывает список параметров, имя которых мы получаем во время выполнения, в настоящее время во время обратной передачи он просто ничего не возвращает, используя HTML-помощники MVC.

Мои модели

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>

когда это получение отправляется обратно на контроллер, указанный ниже, список не заполняется. Я думаю, что я, вероятно, делаю это совершенно неправильно, но не знаю, как это реализовать. Кажется, что «динамическая» концепция параметров - это то, что меня действительно бросает в глаза. Будет ли этот подход работать, и у меня просто что-то не так? или мне нужно посмотреть на другой способ сделать это?

Контроллер

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

1 Ответ

2 голосов
/ 18 августа 2011

Ваша проблема связана с возвратом списка из представления ... проверьте это сообщение Филом Хааком:

Привязка модели к списку

Здесь видно, что я столкнулся с той же проблемой. Предложенное решение направило меня в правильном направлении, но я использовал не то, что я, а должность Фила.

Мое сообщение

Надеюсь, это поможет ...

РЕДАКТИРОВАТЬ: Чтобы уточнить, что вам нужно сделать, это изменить ваш AddParameter View в EditorTemplate и использовать его, как указано в сообщении выше Phil.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...