0

ASP.NET MVCアプリケーションでは、コントローラーアクションごとに異なるViewModelがありますか、それともすべてのアクションに対して共有されていますか。

たとえば、ListアクションとCreateアクションを備えたUsersコントローラーがある場合、UserViewModelが必要ですか、それともCreateUserViewModelとListUsersViewModelが必要ですか?

4

3 に答える 3

0

それらがほぼ同じプロパティになる場合は、共有しても問題ありません。そうでない場合は、2を作成します。私は通常、正直に言うと共有することになります。

于 2012-09-05T13:54:15.150 に答える
0

すべてのユーザーの一覧表示とユーザーの作成/編集は別のものなので、おそらく 2 つの異なるビューが必要になるでしょう。ただし、作成ユーザーと編集ユーザーの間で編集モデル/ビューを作成して共有することはできます。

于 2012-09-05T13:44:43.770 に答える
0

ビューに必要な情報によって異なります。まったく同じ情報を使用する場合、ViewModel を共有しても問題ありません。それらの 1 つが別の情報と同じ情報をすべて持っている場合、次のように一方を他方から継承させることができます。

public class ListViewModel
{
    public string Username { get; set; }
    public string Email { get; set; }
}

public class CreateViewModel : ListViewModel
{
    public bool AcceptedTOA { get; set; }
}

このようなものを使用すると、作成ビューで 3 つの値すべてにアクセスできますが、リスト ビューでのみアクセスできUsernameますEmail

編集:さらにオプションを追加しています...

継承する代わりに、それらを互いの内部に配置することもできます。

public class CreateViewModel
{
    public ListViewModel ListViewModel { get; set; }
    public bool AcceptedTOA { get; set; }
}

..そして、ビューで次のように消費します...

@Model.ListViewModel.Username
于 2013-11-08T15:24:48.453 に答える