hãy xem tập tin AccountModels.cs của bạn. Nó chứa
public class RegisterModel
{
// User name, Email Adress, Password, Password confirmation already there
// you can add something like below
[Required]
[Display(Name = "Nickname")]
public string Nickname { get; set; }
}
Khi bạn có thuộc tính mới trong mô hình, bạn cần cập nhật chế độ xem. Trong Chế độ xem> Tài khoản> Register.cshtml bạn nên thêm
<div class="editor-label">
@Html.LabelFor(m => m.Nickname)
</div>
<div class="editor-field">
@Html.PasswordFor(m => m.Nickname)
@Html.ValidationMessageFor(m => m.Nickname)
</div>
Khi bạn đã hoàn tất, bạn cần cập nhật logic đăng ký để sử dụng thuộc tính mới của mình. Tới AccountController và tìm
[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 */);
//
// this would be a good place for you to put your code to do something with model.Nickname
//
return RedirectToAction("Index", "Home");
}
else
{
ModelState.AddModelError("", ErrorCodeToString(createStatus));
}
}
// If we got this far, something failed, redisplay form
return View(model);
}
Nếu bạn muốn kéo dài thông tin đó để người sử dụng ASP.NET hồ sơ, bạn cần điều này trong Web.config
<profile>
<providers>
<clear />
<add name="AspNetSqlProfileProvider" type="System.Web.Profile.SqlProfileProvider" connectionStringName="ApplicationServices" applicationName="/" />
</providers>
<properties>
<add name="Nickname" defaultValue="False" type="System.String" />
</properties>
</profile>
Sau đó, trong mã của bạn - bạn có thể làm
var userProfile = ProfileBase.Create(model.UserName);
để nhận/đặt tài sản của bạn trong hồ sơ
Nơi để viết mã để chèn các giá trị trong UserDetails trong khi quá trình đăng ký? Bởi vì tôi không thấy bất kỳ mã chèn nào trong Account/Register.aspx.cs –