いくつかの 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 のポータブル領域を検討しましたが、これは実際には領域ではなく、設定方法もよくわからないため、機能するかどうかはわかりません。その道を進む前に、これを行うための好ましい方法は何ですか?