【问题标题】:MVC editor templates in different assembly不同程序集中的 MVC 编辑器模板
【发布时间】:2013-12-04 14:33:56
【问题描述】:

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

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

有什么建议吗?

【问题讨论】:

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


    【解决方案1】:

    我们有几个类提供了 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

    【讨论】:

    • 我觉得这补充了 MVC 的模板系统,而​​且它绝对依赖它。我们还有一些 EditorTemplate,因为在某些情况下您需要额外的灵活性。为接受而欢呼。
    【解决方案2】:

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

    【讨论】:

    • 老板很难证明它是Razor团队官方制作的,他们的主页上没有提到,它是由一个叫大卫的人制作的。无论如何,如果我将 .cshtml 编译为一个类,我如何将其用作编辑器模板?
    • razorgenerator.codeplex.com 本身有一些关于如何实现此目的的文档。
    猜你喜欢
    • 1970-01-01
    • 2023-03-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-03
    • 1970-01-01
    相关资源
    最近更新 更多