지정된 (행) 모델에 따라 html 태그를 렌더링하는 일반 WebGrid 클래스를 구현했습니다.ASP.NET : 면도기의 일반 목록
public class WebGrid<TRow> where TRow : WebGridRow{
public WebGrid(string tableId, IList<TRow> rows){
// Generate columsn from Model (TRow) by reflection
...
}
public MvcHtmlString GetHtml(HtmlHelper helper) {
return new MvcHtmlString(...);
}
}
public abstract class WebGridRow {
public virtual string GetRowId() {
return "row_" + Guid.NewGuid();
}
}
모델 클래스의 특성을 사용하여 레이아웃을 정의 할 수 있습니다. 예를 들어 :
public class MyRowModel : WebGridRow {
[CanFilter(false)]
[CssClass("foo")]
public string Name{get;set;}
[CanFilter(true)]
[CssClass("bar")]
public int SomeOtherProperty{get;set;}
}
이 지금은 일반 뷰를 만들려면, 즉 WebGrid로 WebGridRow의 서브 클래스의 목록을 보여줍니다. 문제는 Razor가 일반 뷰 모델을 지원하지 않는다는 것입니다.
누구든지 어떻게 해결할 수 있습니까?
을 도움이 될 것입니다 모델 "? 뷰의 모델을 항상 WebGrid으로 정의 할 수 있습니다. –
Whoami
맞습니다. 하지만 모델을 WebGrid로 정의 할 수는 없습니다! –
Tobias
무엇이 오류입니까? 내가보기에서 많은 제네릭을 사용했기 때문에. 보기 ICollection 유형의 모델을 받고있어? 보기 (WebGrid 클래스를 포함하는보기)에서 사용하지 않는 것이 확실합니까? –
Whoami