0

標準のユーザー画面と管理者画面の2つの画面があります。2つの間の変更はかなりマイナーです-管理画面のいくつかの追加のボタンとオプション。

MVCのベストプラクティスに関する限り、次のことをお勧めします。

  1. 管理者画面と標準ユーザー画面の両方に同じビューと同じビューモデルを使用します。そうすれば、コードの重複はありませんが、ビューとコントローラーにいくつかのif...elseステートメントがあります

  2. 管理者画面とユーザー画面に別々のビューとビューモデルを使用します。これにより、コードの重複が発生しますが、画面が現在よりも大きく分岐する場合は、最終的に最も柔軟になります。

  3. これに対する他の素晴らしい解決策はありますか?

4

2 に答える 2

3

別のビューモデルを使用して、継承を適用​​します。ViewModelしたがって、コードを複製することはありません。

public class CustomerCreateViewModel
{
  //Here i i have properties common to both user and admin
  public string FirstName { set;get;}
  public string LastName { set;get;}
}
public class AdminCustomerCreateViewModel : CustomerCreateViewModel
{
  //This property is only for admin
  public string ReasonForFiring { set;get;}
}

私は個人的に、物事をきれいにし、読みやすく、保守しやすくするために、別々のビューを保持することを好みます。これで、2つの別々のViewModelがあるので、別々のビューがあります。必要に応じて、(両方のビューで)部分ビューをレンダリングすることを検討できます。

于 2012-07-27T16:52:25.817 に答える
0

これは本当にあなたが答えることができる唯一の質問です。基本的に、変更が軽微な場合は、単一のビューを使用して、ユーザーの役割をチェックするifステートメントで管理機能をラップすると言いました。

ただし、管理者バージョンと非管理者バージョンの間にモデルの変更がない場合にのみ、これを行います。モデルアイテムを追加したら、別のモデルとビューを使用することをお勧めします。

于 2012-07-27T17:05:41.857 に答える