Я пытаюсь использовать EditorFor для ввода значений в список в модели представления. Я не хочу, чтобы все элементы в списке разрешали редактирование. Метод определения того, какой элемент в списке можно редактировать, - это использовать дополнительный список в моей модели представления. Эти два списка идеально совпадают, так что i-я позиция одного списка точно соответствует i-ой позиции другой. Код выглядит следующим образом:РедакторДля отображения отлично, но не сохраняет соответственно
<div class="form-group">
@Html.Label("Inputs", htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@for (int i = 0; i < Model.InputList.Count(); i++)
{
@Html.Label(i + 1 + ") " + Model.ProtocolSteps[i].Description)
if (Model.ProtocolSteps[i].InputNeeded.Value)
{
@Html.EditorFor(model => model.InputList[i], new { htmlAttributes = new { @class = "form-control" } })
}
<br />
}
</div>
</div>
В списке ProtocolSteps определяется, должен ли отображаться шаблон editorfor. Если это необходимо, вход редактора будет сохранен в InputList. Этот код отлично работает без инструкции if (т. Е. Все значения хранятся в правильном месте в InputList). С помощью оператора if представление отображается отлично, но значения не сохраняются в InputList (обычно одно значение сохраняется в списке, но не все). Любая помощь приветствуется тем, почему утверждение if является бесполезным.
Спасибо за ответ, но это ничего не изменило. Я все равно получаю тот же результат. Любые другие предложения? – Jon
Отредактировал ответ, не уверен, почему он работает, но в соответствии с этим связанным вопросом. –
Что делать, если вы перенесли метку в оператор if? –