Мы безуспешно пытались заставить шаблон редактора -работать с динамическим свойством -. Может быть, кто-нибудь из вас поможет нам.
Вот примерно наш класс:
public class Criterion
{
...
public string Text { get; set; }
public dynamic Value { get; set; }
public Type Type { get; set; }
...
}
Наше бритвенное представление получает модель, содержащую список разделов, каждый из которых содержит список критериев. (Мы получаем эту информацию во время выполнения. )Все эти критерии должны отображаться в режиме редактирования -относительно их фактического типа:(отрывок)
@for (int i = 0; i < model.Sections.Count(); i++)
{
for (int j = 0; j < model.Sections[i].Criteria.Count(); j++)
{
var criterion = model.Sections[i].Criteria[j];
var type = criterion.Type.Name;
var name = "Sections[" + i + "].Criteria[" + j + "].Value";
var criterionDisplayName = criterion.Text;
<label for="Sections_@(i)__Criteria_@(j)__Value">@criterionDisplayName</label>
@Html.Editor(name, type)
}
}
Это, например, правильно отображает флажок, но не использует значение для правильной установки состояния флажка (проверено, если критерий. Значение истинно ). То же самое касается и других типов, например ints
. (Он правильно заполняет форму после POST-запроса, но это потому, что MVC использует временную модель для воссоздания пользовательского ввода.)
Насколько мы пробовали и исследовали :, возможно ли вообще использовать шаблон Editor со свойствами типа dynamic
? Если да -, как мы можем заставить его работать? (Мы не хотели бы различать по возможному типу. Мы хотели бы, чтобы среда MVC использовала правильный шаблон редактора в зависимости от фактического типа.)