상당히 간단하지만 모델 바인딩에 문제가있는 것을 얻으려고합니다.Dictionary <Enum, string>()은 mvc의 모델에 바인딩하지 않습니다.
public class PageViewModel {
public IDictionary<ColumnType, string> Columns { get; set; }
}
다음 내보기 같은 모습입니다 : 다음과 같이
public enum ColumnType
{
Column1 = 1,
Column2 = 2,
Column3 = 3,
Column4 = 4,
Column5 = 5,
Column6 = 6,
Column7 = 7,
Column8 = 8,
Column9 = 9
}
는 또한 내 뷰 모델에서 I 형 사전의 때에 프로퍼티가
<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"
같은이 있어야 알고,하지만 난 모르겠어요.
미리 감사드립니다.
머리에 손톱이 맞았습니다! 그게 효과가 있었어! 대단히 감사합니다 !!! – Gurdeep