Я пытаюсь достичь чего-то довольно простого, но у меня возникли проблемы с привязкой модели.
public enum ColumnType
{
Column1 = 1,
Column2 = 2,
Column3 = 3,
Column4 = 4,
Column5 = 5,
Column6 = 6,
Column7 = 7,
Column8 = 8,
Column9 = 9
}
Далее в моей viewModel у меня есть свойства словаря типов следующим образом:
public class PageViewModel {
public IDictionary<ColumnType, string> Columns { get; set; }
}
Вот как выглядит мой вид:
<tr>
<% foreach (var value in Enum.GetValues(typeof(ColumnType)))
{
%>
<%: Html.TextBox(String.Format("Columns[ColumnType.{0}]", value.ToString()))%>
<%
}
%>
</tr>
И я публикую выше следующий метод POST:
[POST]
public ActionResult Index(PageViewModel viewModel)
{
var isNull = viewModel.Columns; //The model won't bind and 'isNull' is 'null' in here
...
...
}
Как вы можете видеть, viewModel.Columnsв действии POST свойство имеет значение null.
Что мне здесь не хватает?
Что касается результата, оно должно выглядеть следующим образом:
// pseudocode
Columns[0] = Key=Column1, Value="text1Value";
Columns[1] = Key=Column2, Value="text2Value";
...
Я знаю, что должно быть что-токак Columns[0].Key = Column1; Column[0].Value = "text1Value"
внутри вида, но я не уверен.
Большое спасибо заранее, ребята!