Asp.net mvc 用于显示数据的ASP.NET MVC通用视图
我正在从事的一个项目涉及通过ASP.NET MVC应用程序公开许多数据实体(超过200个)。Asp.net mvc 用于显示数据的ASP.NET MVC通用视图,asp.net-mvc,Asp.net Mvc,我正在从事的一个项目涉及通过ASP.NET MVC应用程序公开许多数据实体(超过200个)。 我不想为每个实体模式编写视图,我想知道是否有一种方法可以让一个通用视图显示不同的模型(例如,一个视图可以读取模型属性(元数据)并生成一个HTML表来显示实体列表。两个选择: 动态数据项目 您是否尝试过可以自动创建所需内容的项目 Asp.NETMVC 但是,如果您想执行您要求的操作,则始终可以创建一个没有强类型模型的单一视图。您将始终将数据传递给它ViewDatadictionary。然后,视图将解析该数
我不想为每个实体模式编写视图,我想知道是否有一种方法可以让一个通用视图显示不同的模型(例如,一个视图可以读取模型属性(元数据)并生成一个HTML表来显示实体列表。两个选择: 动态数据项目 您是否尝试过可以自动创建所需内容的项目 Asp.NETMVC 但是,如果您想执行您要求的操作,则始终可以创建一个没有强类型模型的单一视图。您将始终将数据传递给它
ViewData
dictionary。然后,视图将解析该数据并显示所需的内容
路由始终可以创建以下两条管线:
routes.MapRoute(
"EntityRoute",
"{entityName}",
new {
controller = "Entity",
action = "Display",
entityName = "SomeDefaultEntity" }
);
routes.MapRoute(
"EntityRoute",
"{entityName}/{recordId}",
new {
controller = "Entity",
action = "Details",
entityName = "SomeDefaultEntity",
recordId = string.Empty }
);
这会将所有请求重定向到同一控制器操作,该控制器操作将提供正确的实体集数据,并将其传递到
ViewData
字典中,并返回将使用该数据的视图。第二个请求将显示某个实体中某条记录的详细信息(如果需要提供主/详细信息功能).两种选择:
动态数据项目
您是否尝试过可以自动创建所需内容的项目
Asp.NETMVC
但是,如果您想执行您要求的操作,则始终可以创建一个没有强类型模型的单一视图。您将始终将数据传递给它ViewData
dictionary。然后,视图将解析该数据并显示所需的内容
路由始终可以创建以下两条管线:
routes.MapRoute(
"EntityRoute",
"{entityName}",
new {
controller = "Entity",
action = "Display",
entityName = "SomeDefaultEntity" }
);
routes.MapRoute(
"EntityRoute",
"{entityName}/{recordId}",
new {
controller = "Entity",
action = "Details",
entityName = "SomeDefaultEntity",
recordId = string.Empty }
);
这会将所有请求重定向到同一控制器操作,该控制器操作将提供正确的实体集数据,并将其传递到
ViewData
字典中,并返回将使用该数据的视图。第二个请求将显示某个实体中某条记录的详细信息(如果需要提供主/详细信息功能).有一个模型可视化工具,它可以让你通过反映模型的属性来显示模型。如果你需要任何性能,这是不可行的,但也许它可以让你开始。有一个模型可视化工具,它可以让你通过反映模型的属性来显示模型。如果你需要任何性能,这是不可行的,但也许它可以让你开始。如果你您只需要显示,就可以在几分钟内使用反射编写自己的通用渲染器。或者,您可以使用MvcContrib中的ModelVisualizer,或者使用MvcContrib中的ModelVisualizer,它可以执行Html.Grid(Model).AutoGenerateColumns()自动将属性显示为列。它不支持DataAnnotation或属性,但您可以编写自己的扩展方法,使用反射根据某些属性生成网格的列。您还可以使用jqGrid的tableToGrid()方法将此网格快速转换为jqGrid
如果您需要输入支持,有几种选择:
也应该有商业工具。如果您只需要显示,您可以使用反射在几分钟内编写自己的通用渲染器。或者,您可以使用MvcContrib中的ModelVisualizer,或者使用MvcContrib中的ModelVisualizer,后者可以执行Html.Grid(Model).AutoGenerateColumns()自动将属性显示为列。它不支持DataAnnotation或属性,但您可以编写自己的扩展方法,使用反射根据某些属性生成网格的列。您还可以使用jqGrid的tableToGrid()方法将此网格快速转换为jqGrid 如果您需要输入支持,有几种选择:
也应该有商业工具。“它不支持数据注释或属性。”现在做:D提交1/15的评论:将ModelMetadata支持添加到grid.AutoGenerateColumns。好吧,这是个好消息!然后我也可以使用它,因为我一直想删除一些列,但仍然自动生成其余的列。我认为更好的方法是通过“AttributeProcessor”或者类似的东西,但是,嘿,如果我需要的话,我可以贡献;-)“它不支持数据注释或属性”,现在是这样的:D提交1/15的评论:向grid.AutoGenerateColumns添加ModelMetadata支持。好吧,这是个好消息!然后我也可以使用它,因为我总是想删除一些列,但仍然自动生成其余的列。我认为更好的办法是通过“属性处理器”或类似的考试,但嘿,如果我需要的话,我可以投稿;-)