【发布时间】:2010-10-26 21:09:01
【问题描述】:
我正在尝试在 ASP.NET MVC 应用程序中构建通用网格视图。
让我用一些代码解释一下:
public interface ITrustGrid<T>
{
IPagedList<T> Elements { get; set; }
IList<IColumn<T>> Columns { get; set; }
IList<string> Headers { get; }
}
这是一个类的接口,允许我在控制器中设置列和表达式。
我将实现传递给这样的局部视图:
<% Html.RenderPartial("SimpleTrustGridViewer", ViewData["employeeGrid"] as TrustGrid<EmployeeInfoDTO>); %>
问题是我不知道如何制作渲染网格通用的局部视图。
也就是说,我想转这个:
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<ITrustGrid<EmployeeInfoDTO>>" %>
变成这样:
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<ITrustGrid<T>>" %>
=> 如何以最简单的方式使我的局部视图通用?
编辑:
我通过使用具有公共 TrustGrid GetTrustGrid() 方法的 TrustGridBuilder 解决了这个问题,该方法返回非泛型 TrustGrid。 TrustGrid 包含字符串而不是 linq 的东西。所以我在 GetTrustGrid() 方法中执行 linq 并将字符串放入 TrustGrid 对象中。
感谢大家帮助我走上正轨。
【问题讨论】:
标签: c# asp.net-mvc generics