2

このパターンを使用するのはこれが初めてであり(このパターンがこのプロジェクトに適しているかどうかさえわかりません)、私と私の仲間にはいくつか質問があります。パーミッションに関してファイルを表示するためのシンプルなアプリケーションを設計しています。

  1. 「Joe」が現在システムにログインしていると仮定します。「Joe」をアクティブユーザーとして保存する正しい場所はどこですか?
  2. このコンテキストでのコントローラーの役割は何ですか?「Joe」がシステムにログインしたいとします。彼はパスワードを入力して[ログオン]をクリックします。ビューはモデルを使用して詳細を直接検証する必要がありますか?それとも、コントローラーに彼のためにそれをするように頼むべきですか?

  3. ログインが成功したとすると、今何が起こるはずですか?ビューはモデルをオブザーバーとしてリッスンし、ログインが正しいという応答を待ってからウィンドウを切り替える必要がありますか?または、コントローラーにはboolean ValidateLogin()、ビューが呼び出してそれに応じて動作するメソッドが必要ですか?

ご覧のとおり、非常に混乱していますので、ご協力いただければ幸いです。

4

3 に答える 3

3
  1. セッション/データベース/構成ファイル(これはシングルユーザーシステムですか、それともマルチユーザーシステムですか?)
  2. 一部のWebフレームワーク*:ビューはログインデータをコントローラーに渡し、モデルに渡されます。モデルは検証し、結果をコントローラーに返し、正しいビューを応答として提供します。ビューがモデルに対してデータを直接検証する場合も問題ありませんが、IMOビューとモデルの通信にはロジックが含まれていてはならず、データ更新通知のみが含まれている必要があります。
  3. 上記の回答2で部分的に回答されていると思います。ただし、コントローラーはログインビューを破棄/変更できる必要があります(ログインが成功すると、通常、ビューはそれに応じて変更されます)。

*これは、Webアプリケーションでは、デスクトップアプリケーションとは異なり、通常、ビューがモデルと直接通信できないためです。これはまだMVCであり、MVAと呼ばれるバリエーションのみです。

于 2012-06-02T15:43:07.807 に答える
0

要件については、最初にこのプロジェクトMembershipStarterKitを使用することをお勧めします。

基本的な認証と役割管理を行うサンプルがあります。

また、.Netメンバーシッププロバイダーを使用して、車輪の再発明を行わないようにします。

于 2012-06-02T15:38:17.193 に答える
0
  1. セッションに保存する
  2. クライアント側の検証は、モデルを使用してビューで直接実行できます(DataAnnotationsを介して)。そしてデータベース呼び出しの場合、それはコントローラーを通過します
  3. ログインに成功すると、コントローラーは対応するビューをレンダリングします
于 2013-03-04T05:38:15.583 に答える