2

複数のサインインが必要なMVC3を使用してアプリケーションを構築しています。1つは、標準フォーム認証です。もう1つは、管理セクションへの障壁としてであり、期限切れのセッションには3番目のサインインがあります。

できるだけ多くのコードを再利用したいのですが、各ページに若干の変更があります。たとえば、期限切れのセッションで、ユーザー名を編集可能なテキストボックスから、期限切れのセッションのユーザー名を表示するだけに変更したいとします。また、「Session Expired」というタイトルのように、テキストを少し変更したいと思います。

ベストプラクティスは何ですか?

アイデア1:タイトルと編集可能かどうかを設定するコントローラーにパラメーター文字列とブールフラグを追加して、ビューを再利用する必要がありますか?そうすれば、コントローラーも再利用できます。

アイデア2:それぞれに個別のコントローラー/ビューを用意します。これらのページは互いに似ていますが、アプリケーションの他の部分とは異なるため、新しいレイアウトテンプレートを作成してから、各ビューを分離します。

事前に感謝します、皆さんは素晴らしいです!

4

3 に答える 3

2

たとえば、期限切れのセッションで

同じコントローラーを使用し、セッションの状態に依存し、適切なモデルを構築し、特定の部分ビューを返します

public ActionResult sessionInfo() {

       if (sessionIsAlive){

          //build the model for the current user 
          return PartialView("logged", model);
       }

         //build the model for the session expired 
        return PartialView("expired", model);

}
于 2012-07-10T15:33:06.780 に答える
1

これは個人的な好みであり、コードをどれだけ複雑にしたいかだと思います。

個人的に、そしてこれが最もよく起こるのを見た方法は、コントローラーからビューに渡されるモデルにある種の編集可能なフラグが設定されたビューを1つ持つことです(ただし、ビューまたはパーシャルを介してそれを提示します)。

チッ!

于 2012-07-10T15:27:15.220 に答える
0

私の意見では、決定はモデルに対して直接行う必要があります。モデルが変更された場合、各ウィンドウで標準に従うために、モデルごとに強くタイプするビューを実行しようとします。アクションに関しては、ここで同じアクションを呼び出して、受け取ったモデルに基づいて決定を下そうとします。

于 2012-07-10T15:33:25.843 に答える