2009-04-17 3 views
0

私はasp.net MVCフレームワークを使用しています。私のアプリケーションでは、ユーザーはログインしなければなりません。そして、ユーザー名とパスワードの組み合わせが正しい場合、メニュー付きのdiv(またはpanel?)が表示されなければなりません。しかし、私はこれをどのようにすることができますか?私のパネルpnlMenuの名前は、私のコントローラでは何かできません:C#MVCのGUIを処理する

pnlMenu.visible = true; 

どうすればいいですか?

答えて

3

あなたは何をすべきは、ユーザーがログインしてこのようなViewDataをに値を設定されているかどうかを確認するために、あなたのコントローラのチェックであります:

次に、この値に基づいてメソッドの可視性を設定できます。この方法で後でビューを変更したり、複数のビューを持つことに決めた場合は、それぞれがこの値を使用することができ、ビューとコントローラーの間に結合がありません。

0

適切なコントロールを表示または非表示にできるビューまたはプロパティを作成しますか?

あなたのコントローラでは、ビューのプロパティまたはメソッドにアクセスできますか?

MVCのアイデアの1つはUIを別の実装(web/win/...)で置き換えることができるため、コントローラのビューで特定の「コントロール」を参照したくないということです。同じコントローラとアプリケーションロジックを使用します。 次に、ビューがサポートしなければならない操作を記述したいだけなので、Viewがサポートしなければならない 'コントラクト'を記述するインタフェースで、 'ChangeState(bool loggedIn)'メソッドを作成する必要があります。コントローラで

ユーザーがログインしたときに、このメソッドを呼び出すことができますが。

+0

ビューでプロパティを作成するにはどうすればよいですか?ビューはコードビハインドファイルがないaspxです。 – Martijn

+0

"...だから、あなたのViewがサポートしなければならない '契約'を記述するインタフェースでは、「この部分は理解できません。これをどこで行う必要がありますか? – Martijn

+0

コントローラからビューのメソッドまたはプロパティに直接アクセスしたくない場合。 –

関連する問題