EditorForModel
のカスタマイズと、自分のコードと組み込みのMVC3ヘルパーによって生成されるHTML要素の名前付けに苦労しています。私のコードは非常にシンプルで、レンダリングされた要素に適切な名前を付けるなどの微妙な要素がはっきりしていません。MVC3エディタテンプレートのカスタマイズに関する高度なリソースを探しています
私の現在の開発のこの分野を磨くのに役立つ先進的なリソースを探しています。特に、小さなサブモデル間でメインビューモデルを細分することで、1つのビューで3つのEditorForModel
コールを適用することができます生成されたモデルエディタをフォーム列またはタブページに分割することができます。次のようにデフォルトEditorForModel
テンプレートの
私の現在の「オーバーライド」は次のとおりです。
@{
// TODO Filtering for subsets of model without having to bind separate models.
var properties = ViewData.ModelMetadata.Properties.Where(pm => pm.ShowForEdit && !pm.IsComplexType && !ViewData.TemplateInfo.Visited(pm));
}
<fieldset>
<legend>@ViewData.ModelMetadata.DisplayName</legend>
<ul class="form-column">
@foreach (var prop in properties)
{
<li>
@{
if (prop.HideSurroundingHtml)
{
@Html.Editor(prop.DisplayName ?? prop.PropertyName)
}
else
{
@Html.Label(prop.PropertyName, (prop.IsRequired ? "* " : "") + (prop.DisplayName ?? prop.PropertyName))
@Html.Editor(prop.PropertyName)
}
}
</li>
}
</ul>
</fieldset>
私はBrad Wilson's blog上this article上Object.ascx例テンプレートからこのコードをコピーして変更しています。できるだけ豊かな方法で、可能な限り多くのシナリオに対応するためにこれを充実させるために、私はどのようなリソースを調べることができますか?
にあなたが強力なHTMLテンプレートを探しているなら、私はFubuMVCチームからHTMLテンプレート規則をチェックアウトすることをお勧めします。それらはASP.NET MVCと100%互換性があり、柔軟性があり/構成可能です。私は2年以上それらを使用してきたし、絶対にそれを愛する。 http://craigcav.wordpress.com/2011/11/22/applying-conventions-in-asp-net-mvc/ Nickの記事をクリックすると、ASP.NET MVCでこの作業を行う方法へのリンクがあります。 – Ryan
私はあなたがそのテンプレートよりも優れているとは思えません。つまり、ラベルのリスト+各プロパティのエディタまたは表示です。オブジェクトテンプレートを非常に汎用的にするには、Order属性を処理してプロパティを表示する順番を決定するだけです。反対側では、テンプレートの構成方法を制御するカスタム属性に基づいてフレームワークを設計することができます。しかし、これはあなたのアプリケーションに強く依存します。 –