2011-11-23 65 views
0

我们正在使用ext.net和EF 4开发ASP.NET MVC 3. 使用EF4映射数据模型。 视图的内容由可定制的XML文件呈现。 示例:在一个视图中,我可以显示与“客户”和“订单”对象相关的字段,因此从该视图我可以修改客户数据并添加新订单。将可定制视图绑定到动态模型

我们如何将视图绑定到包含2个对象(客户和订单)的自定义模型?使用非强类型视图将需要一个将检查所有不同可能性的源代码(如果我从XML文件中删除/添加要显示的字段,则对象构造函数和CRUD操作参数也将改变。我们处理这样的动态应用程序吗? 这是之前引发的常见问题吗?还是有任何解决方案使用绑定到自定义模型(object,xml等)的动态视图?

您的帮助非常感谢,请

+0

您能否详细说明您为什么不使用强类型视图?既然你使用EF4,我想你会有POCO对象映射到你的数据。现在,您可以在视图中使用一些普通的ViewData,并将POCO转换为ViewData(也许借助于像Automapper这样的工具)。这将是一个最佳做法。 –

+0

的确,我正在使用POCO对象,但我担心的是视图包含来自不同模型的属性。这就是为什么我正在寻找一种方法来使用自定义动态模型,我可以指定将在该特定视图中使用的对象。 – unknownUser

回答

0

根据您对我的评论的回复,我可以有保证地说您需要强类型视图。也就是说,你决定你的观点的模型是什么。如果您认为需要在同一时间来管理用户和订单,就可以使一类是这样的:

public class MyCustomViewData 
{ 
public IEnumerable<User> Users {get;set;} 
public IEnumerable<Order> Orders {get;set;} 
} 

,然后强烈键入您的视图MyCustomViewData和你设置。我的例子过于简单,但我认为你可以明白这一点。

+0

谢谢你的回答。在分析刚才所说的内容时,我只面临更多问题。是否有可能以编程方式使用ASP.NET htmlhelpers创建视图。我的意思是从一个不同的项目“ViewEngineGenerator”我想用htmlhelpers创建视图内容。可能吗? – unknownUser

+0

如果您问是否可以为HtmlHelper制作自己的扩展方法,那么您可以。只需创建一个静态类,为HtmlHelper类创建扩展方法,然后将包含您的类的名称空间放入web.config中并设置好。 –

+0

再次感谢您。但我不想创建自己的扩展。我关心的是,可以在aspx视图之外使用html助手。我使用视图生成器项目从XML文件中动态地呈现字段,该视图生成器项目呈现的视图的内容是用XML文件定制的,而我无法使用html助手从此视图生成器项目呈现文件。 – unknownUser

0

除非我错过了一些东西,我相信这种正常的方法是强烈地键入你的视图来说'用户',然后在第e用户对象,定义一个属性是'订单'的集合。

相关问题