MVC4 면도기 뷰를 사용하여 런타임시 동적으로 열을 작성하기 위해 메타 데이터의 리플렉션을 사용하여 데이터 테이블을 표시합니다. int 열은 @ Html.DisplayFor에 표시되지 않지만 string, bool 등에 대해서는 나타납니다. @ Html.TextboxFor를 사용하거나 페이지에 값을 쓰면 모든 열이 나타나는 것처럼 보입니다. Visual Studio는 디버깅에서 {int} 객체 유형을 보여줍니다. 이는 내가 권투라고 가정하고 있습니다. 내 생각 엔 DisplayFor가 int가 아닌 type 객체 {int}를 키잉하고 있다는 것입니다. 어쨌든 가능하다면 객체 {int}에 대한 새로운 DisplayFor 템플릿을 만들지 않고이 작업을 수행 할 수 있습니까?Html.DisplayFor 박스형 값으로 작동하지 않음
@foreach (var item in words)
{
<tr>
@foreach (var prop in wordMeta.GetMetaProperties())
{
dynamic val = prop.GetInstanceValue(item);
<td>@Html.DisplayFor(a => val)</td>
}
</tr>
}
ViewModel은 필요에 따라 정확하게 유형을 지정해야합니다. ViewModel에서 객체로 박스형 int 값을 보내는 것은 분명히 [Code Smell] (http://en.wikipedia.org/wiki/Code_smell)입니다. –
당신이 포코 (poco)를주는 것을 동적으로 표시 할 수있는 RAD 도구로 작업하십시오. 그것이 내가 성찰을 사용하는 이유입니다. – WillC
그렇다면 도구가 자동으로 값 유형을 unbox 할 수 있기를 원하십니까? –