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

时间:2013-12-04 14:33:56

标签: asp.net-mvc mvc-editor-templates

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

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

有什么建议吗?

2 个答案:

答案 0 :(得分:3)

我们有一些类提供相当于editorfor但被不同HTML包围的类。我们有一个@Html.CMSEditorFor(m => m.Name)使用与我们的内容管理系统相同的HTML,另一个用于@Html.BootstrapEditorFor(m => m.Name),它以一种漂亮的Bootstrap兼容方式生成HTML。

虽然直接来自这里,但我不能说这个想法有任何功劳。 ASP.NET MVC 3 Custom HTML Helpers- Best Practices/Uses

答案 1 :(得分:1)

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