0

我正在使用 MVC.Net 开发一个列表生成器。

我已经创建ColumnInfo<T>Report<T>类如下:

public class ColumnInfo<T>
{
       public string Title{get;set;}
       public Func<T,object> Projector{get;set;}
}

public class Report<T>
{
   public IList<ColumnInfo<T>> Header{get;set;}
   public IQueryable<T> Result{get;set;} 
    ......
}

我想做的是通过在部分视图中Report枚举它来创建标题和正文。Header问题是:如何将我的泛型引入Report<T>Razor 视图?这是我的想法:

@foreach(var row in Model.Result)
          {    
<tr>
    @foreach(var col in Model.Header)
    {

             <td>@col.Projector(row)</td>

    }
    </tr>
}
4

1 回答 1

0

可能的解决方案是在您的视图中使用动态作为您的通用类型:

@model Models.Report<dynamic>

您的控制器还需要将类型设置为动态:

public ActionResult Report()
{
    var viewModel = new Report<dynamic>();
    return View(viewModel);
}

不确定此解决方案是否适合您的问题,但我注意到无法仅设置:@model Models.Report<T>

于 2013-06-15T09:58:40.820 回答