2010-10-07 45 views
1

是否有可能以某种方式利用Asp.net MVC 3中的依赖注入(使用Forms ViewEngine)从另一个库注入UserControls?我已经使用MEF将其他一些东西加载到我的MvcApplication中。Asp.net MVC 3注入UserControl for TemplateHint

我需要这个,因为我想用可扩展类型系统构建一个系统。我希望类型供应商能够为所提供的类型注入自定义控件。我已经有一个自定义MetadataProvider,知道如何处理提供的类型(它设置ModelMetadata.TemplateHint属性)。

的问题是我在哪里可以插在MEF,使TemplateHint得到妥善处理,并自定义控制在caling Html.EditorForModel

回答

2

我不能想办法做到这一点使用dispalyed MVC 3测试版中的当前服务定位器基础结构。我可以想到两个替代方案:

  1. 有一个编辑器模板,而不是将HTML代理呈现给您的自定义控件并返回它们的输出。
  2. 编写您自己的ViewEngine,可以执行查看部分视图(路径将采用“EditorTemplates/YourTypeName”等形式),并返回知道如何与您的自定义控件进行对话的视图。
+0

嗨,我刚刚实现了我自己的ViewEngine。我基本上只需要实现IViewEngine.FindPartialView,从partialViewName参数中解析出自定义类型id并将渲染委托回自定义类型。所以你的回答是正确的:) – m0sa 2010-10-07 20:01:10

+1

我很确定#2正是你所描述的:) – marcind 2010-10-07 21:06:37