このため、新しい MVC と Simplemembership Provider が気に入っています。モデルを asp.net アカウント モデルと非常に簡単に組み合わせることができます。
デフォルトのインターネット テンプレートを使用すると、UsersContext というコンテキストが作成されます。UserProfile オブジェクトにフィールドを追加してデータベースで追跡するなどの簡単なことを行うには、3 つの簡単なことを行う必要があります。
- プロパティをモデルに追加します (既定のテンプレートを使用する場合はアカウント モデル内)。
アカウント コントローラーの登録アクションで、新しいフィールド IE を追加します。
public ActionResult Register(RegisterModel model)
{
if (ModelState.IsValid)
{
var db = new UsersContext();
// Attempt to register the user
try
{
WebSecurity.CreateUserAndAccount(model.UserName, model.Password, new { FirstName = model.FirstName, LastName = model.LastName, Address = model.Address, Company = model.Company, Phone = model.Phone, Country = model.Country, City = model.City, State = model.State, Zip = model.Zip });
WebSecurity.Login(model.UserName, model.Password);
return RedirectToAction("Index", "Dashboard");
}
catch (MembershipCreateUserException e)
{
ModelState.AddModelError("", ErrorCodeToString(e.StatusCode));
}
}
// If we got this far, something failed, redisplay form
return View(model);
}
渡されたモデルから値を取得し、それらをモデルに一致させた新しいキーワードに注意してください。(モデルバインディングはここで機能する場合と機能しない場合がありますが、まだテストしていません)
3) レジスターのビューとモデルを変更して、必要なすべての情報を渡す
これが奇妙なエラーなしで初めて完璧に機能したとき、私は泣きそうになりました。
幸運を