まず、ViewModelを定義します
public class EditUserViewModel
{
public User User { get; set; }
public IList<License> Licenses { get; set; }
public IList<Service> Services { get; set; }
}
ビューモデルは、ビューを表示するために必要なすべてのものを含む単なるヘルパークラスです。次に、あなたの行動で:
public ActionResult EditUser(int id)
{
var userViewModel = new EditUserViewModel
{
User = // Get user from db
Licenses = // Get licenses for that user
Services = // Getservies the user in entitled to
}
return View(userViewModel);
}
次に、モデルのEditUserViewModelを使用して、ビューを型付きビューにします。
@model EditUserViewModel
@* //Some html or whatever here *@
@* //Access your model properties as follows *@
@Model.User
@Model.Licenses
@Model.Service
EditUserViewModelクラスを他のビュー、たとえばUserDetailsに再利用できます。その場合は、名前を変更して「編集」プレフィックスを削除することをお勧めします。
コメントの質問を明確にするための更新:
経験則:ビューモデルを小さく、馬鹿げた、シンプルなものにしてください。メソッド、機能、インテリジェンスはなく、表示プロセスを支援するいくつかのプロパティがあります。EditUser
andビューの場合のように、非常によく似たビューでのみビューモデルを再利用する必要がありDisplayUser
ます。DisplayServices
ビューなどに別のビューモデルがあります。