0
私はビジネスアプリケーションのラインを構築することだし、アドレスをレンダリングするとき、私は私が実際にコピーして、どこにでも貼り付けをしたくないビューコードのこの部分を持っている:強力な型付けされたビューの一部をRazorで再利用するにはどうすればよいですか?
<div class="editor-field">
@Html.DropDownListFor(model => model.Address.State, new
SelectList(UsaStates.StateDictionary.OrderBy(s => s.Value), "Key", "Value",
"Iowa"), "-- Select State --")
@Html.ValidationMessageFor(model => model.Address.State)
</div>
アドレスクラスは非常にありますシンプル:
public class Address
{
public string Address1 { get; set; }
public string Address2 { get; set; }
public string City { get; set; }
public string State { get; set; }
public int Zip { get; set; }
public string County { get; set; }
}
モデルクラスはそうのような住所を実装します。これにより
public class Business
{
// .. other properties
Address Address {get;set;}
}
public class College
{
// .. other properties
Address Address {get;set;}
}
、私は2つのビュー、企業/ Create.cshtmlとコレを持っていますges/Create.cshtmlを独自のモデルで作成します。
このコードのスニペットをアプリケーションのすべてのビューで使用できるようにする最良の方法は、モデルにアドレスフィールドがあるものですか?
答えをいただきありがとうございますが、例は本当に役立たなかった。それは時代遅れであり、説明を簡単にするための前提となります。私のアプリでは、モデルのAddressプロパティはビューの作成に足場を張っていないので、UIHint属性は有効ではありません。 –
@Robert:自分で作ったことは一度もありませんでしたので、ここで本当に助けてもらえませんが、 'Address'クラス用のエディタテンプレートを作成し、' EditorFor'を使って呼び出すことができます。列を足場にする必要はありません。また、部分的なビューを作成することもできます。 – SLaks
Addressモデルで強く型付けされた部分的なビューから始めましたが、RenderPartial()呼び出しでモデルとして渡すべきものがわからないようです。 –