我有几个 MVC4 项目,我想制作一组在这些项目中重用的显示/编辑器模板。我想创建一个包含这些模板的通用项目,并在其他项目中引用它。
所以我在我的公共项目中定义了视图,以及其他一些实用程序:
Common
- Models
- CommonMetadataAttribute.cs
- Views
- Shared
- EditorTemplates
- Decimal.cshtml
- Object.cshtml
- Password.cshtml
- String.cshtml
- Switch.cshtml
- ViewTemplates
- Object.cshtml
- Switch.cshtml
- Error.cstml
在我的客户项目模型中,我有
using MobileWeb.Common
public class MyViewModel
{
[UIHint("Switch")]
[CommonMetadata(Theme = "foo")]
public bool Enable { get; set; }
}
在客户端项目视图中,我可以通过简单地调用来生成我的自定义编辑器:
@model MyViewModel
...
@Html.EditorFor(model => model.Enable)
理想情况下,客户项目可以用他们自己的模板覆盖,如果没有定义项目特定的模板,它就会回退到通用模板。
我考虑过 MvcContrib 的便携式区域,但我不确定它是否会起作用,因为这不是一个真正的区域,我真的不知道如何设置它。在我走这条路之前,我想知道这样做的首选方式是什么?