2

MVC 3アプリに初めて登録する新しいユーザーから3つの異なるタイプの情報をキャプチャする必要があります(最初にEFコードを使用)。理想的には1ページ(3つのタブがあります)

  1. ユーザー情報
  2. 拡張ユーザー情報
  3. ユーザーが選択したメリット

アカウントコントローラーのregisterメソッドは、起動時にユーザーテーブルにデータを入力する必要があります。他のデータをキャプチャするための最善の方法についてアドバイスが必要です。追加データのUserDetailsモデルを作成しますか?もしそうなら、同じページからこれを更新することは可能ですか?(これはアカウント/登録ページになります。アカウントコントローラーで何かを行う必要がありますか、それともモデル間の関係は十分ですか?

これを説明する良い例はありますか?MVC Contoso Universityを試しましたが、これができるかどうかわかりませんでした。

どんなアドバイスも大歓迎です:)

ありがとう

4

2 に答える 2

2

他のモデルから必要なすべてのフィールドを組み合わせたビュー モデルを作成し、それにビューを強く型付けすることができます。ユーザーが情報をコントローラーに送信したら、各プロパティを適切に処理します。

public class RegisterViewModel()
{
  //Userinfo
  public string UserName {get; set;}
  ...
  //Extended user info
  public string FirstName {get; set;}
  public string LastName{get; set;}
  ...
  //Benefits
  public string BenefitName {get; set;}
  ...
}

その後

[HttpPost]
public ActionResult Register (RegisterViewModel viewModel)
{
  //grab the user info from the view model and process it
  viewModel.UserName...

  //grab the extended info and process it
  viewModel.FirstName...
  //grab the benefit info and process it
  viewModel.BenefitName...
}
于 2012-10-05T17:46:35.647 に答える
0

1 つのビューは 1 つのモデルのみを持つことができます。必要なすべての情報をそこに置くことができます。それは最も簡単な解決策です。ビューのモデルは、他の場所で使用しているクラスにマップする必要がないため、ユーザー情報、拡張ユーザー情報、およびユーザーが選択した特典をすべて 1 つのモデルに含めることができます。

または、これを 2 段階または 3 段階のプロセスにすることもできますが、それは望ましくないと言いました。

于 2012-10-05T16:05:33.390 に答える