0

登録したユーザーにテーブルの行を割り当てたい。このテーブルには、UserId という名前の列と、その他のいくつかの列があります。このテーブルの UserId を新しく登録されたユーザーの UserId に設定し、他の値を 0 に設定したいと思います。Register 関数でこれを行いたいと思います。しかし、アカウントコントローラーの登録機能でユーザーIDにアクセスする方法がわかりません。デフォルトのアカウント コントローラーとその関数を使用します。登録機能のコードは次のとおりです。

[HttpPost]
        public ActionResult Register(RegisterModel model)
        {
            if (ModelState.IsValid)
            {
                // Attempt to register the user
                MembershipCreateStatus createStatus;
                Membership.CreateUser(model.UserName, model.Password, model.Email, null, null, true, null, out createStatus);

                if (createStatus == MembershipCreateStatus.Success)
                {
                    FormsAuthentication.SetAuthCookie(model.UserName, false /* createPersistentCookie */);
                    return RedirectToAction("Index", "Home");
                }
                else
                {
                    ModelState.AddModelError("", ErrorCodeToString(createStatus));
                }
            }

            // If we got this far, something failed, redisplay form
            return View(model);
        }
4

2 に答える 2

2

ユーザーがモデルであると仮定すると、コントローラーは次のようになります

class Account:Controller{

[HttpPost]
ActionResult Register(User myModel){

var myUserId = myModel.UserId;

}
}

そして、あなたのビューは次のようなものから始まるはずです

@model User
于 2012-06-17T05:38:10.940 に答える
1

作成時にユーザーに対して生成された一意の識別子を UserId として参照している場合は、次のように見つけることができます。

[HttpPost]
public ActionResult Register(RegisterModel model)
{
    if (ModelState.IsValid)
    {
        // Attempt to register the user
        MembershipCreateStatus createStatus;
        var user = Membership.CreateUser(model.UserName, model.Password, model.Email, null, null, true, null, out createStatus);

        if (createStatus == MembershipCreateStatus.Success)
        {
            var userId = (Guid) user.ProviderUserKey; //The unique identifier just created

            FormsAuthentication.SetAuthCookie(model.UserName, false /* createPersistentCookie */);
            return RedirectToAction("Index", "Home");
        }
        else
        {
            ModelState.AddModelError("", ErrorCodeToString(createStatus));
        }
    }

    // If we got this far, something failed, redisplay form
    return View(model);
}
于 2012-06-17T07:07:21.883 に答える