MVC编辑器模板在不同的程序集中



我想创建一个可以在几个MVC项目中使用的通用程序集(首选MVC 4)。此程序集必须为基元类型提供编辑器模板。例如,日期选择器。我该怎么做?

我知道有两种方法可以实现类似的目标,但我不喜欢。一种方法是忘记MVC的模板系统,提供自定义的HtmlHelper扩展,比如@Html.MyOwnDatePickerFor(x=>x.Field)。我知道一些UI框架可以做到这一点。我不喜欢它,因为它是不透明的(@Html.EditorFor()不会自动拾取它),并且在MVC中有一个编辑器模板系统而不使用它感觉很奇怪。另一种方式是实际的MVC模板系统,通过创建名为EditorTemplates/datatype.cshtml(或.ascx)的部分视图,但它不起作用,因为它们必须在MVC项目中,我不知道如何在多个项目之间共享这些。

有什么建议吗?

我们有一些类提供了editorfor的等价物,但被不同的HTML包围。我们有一个适用于@Html.CMSEditorFor(m => m.Name),它使用与我们的内容管理系统相同的HTML,还有一个用于@Html.BootstrapEditorFor(m => m.Name),它以一种良好的Bootstrap兼容方式大量生成HTML。

虽然这个想法是直接从这里来的,但我不能对它表示任何赞扬。ASP.NET MVC 3自定义HTML帮助程序-最佳实践/使用

您正在寻找RazorGenerator。它是由Razor团队制作的,允许您编译Razor视图,仅用于此目的:通过在其他项目中包含程序集来重用视图。

最新更新