0

問題があり、MVC を初めて使用するため、どこから始めればよいかわかりません。私は3つのテーブルを持っています:

  • ユーザー(ユーザー ID、ユーザー名など) ユーザーを定義します。
  • サービス(ServiceID、ServiceName など)サービスを定義します。
  • ライセンス(ID、UserID、ServiceID など)サービスをユーザーにマップします。

バックエンドでは、ユーザーはライセンスを持っていればサービスにアクセスできます。理想的には、EditUser ビューにサービスのリストを表示して、ライセンスが必要なサービスを確認できるようにしたいと考えています。

このリストには現在のライセンスを事前に入力する必要があり、チェックを外して保存した場合は削除する必要があります。

ライセンスを追加および削除する方法はすべてありますが、これをコントローラーとビューに実装する方法を知る必要があります。

前もって感謝します。

4

1 に答える 1

2

まず、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に再利用できます。その場合は、名前を変更して「編集」プレフィックスを削除することをお勧めします。

コメントの質問を明確にするための更新: 経験則:ビューモデルを小さく、馬鹿げた、シンプルなものにしてください。メソッド、機能、インテリジェンスはなく、表示プロセスを支援するいくつかのプロパティがあります。EditUserandビューの場合のように、非常によく似たビューでのみビューモデルを再利用する必要がありDisplayUserます。DisplayServicesビューなどに別のビューモデルがあります。

于 2011-03-16T14:18:59.030 に答える