저는 프로젝트의 등록 부분을 작업하고 있습니다. 사용자가 계정을 등록하기를 원하면 사용자는 주소, 도시, 우편 번호, 이름, 성 등을 입력해야합니다 (아래 모델에서 설명).ASP.NET MVC에서 등록 파트를 편집하는 방법은 무엇입니까?
어떻게 접근 할 수 있습니까?
나는 다음과 같은 코드를 변경 시도:
~/Controllers/AccountController.cs
: 나는 UserProfile
및 webpages_Membership
라는 테이블 만 사용자 이름과 암호를 저장하는 포스트 방법 public ActionResult Register(RegisterModel model) {}
내 코드의 일부가 발견
//
// GET: /Account/Register
[AllowAnonymous]
public ActionResult Register()
{
return View();
}
//
// POST: /Account/Register
[HttpPost]
[AllowAnonymous]
[ValidateAntiForgeryToken]
public ActionResult Register(RegisterModel model)
{
if (ModelState.IsValid)
{
// Attempt to register the user
try
{
WebSecurity.CreateUserAndAccount(model.UserName, model.Password);
WebSecurity.Login(model.UserName, model.Password);
return RedirectToAction("Index", "Home");
}
catch (MembershipCreateUserException e)
{
ModelState.AddModelError("", ErrorCodeToString(e.StatusCode));
}
}
// If we got this far, something failed, redisplay form
return View(model);
}
을 이 모양은 다음과 같습니다.
try
{
WebSecurity.CreateUserAndAccount(model.UserName, model.Password);
WebSecurity.Login(model.UserName, model.Password);
return RedirectToAction("Index", "Home");
}
01을 변경하지 않아도됩니다.함수는 두 개의 인수, 사용자 이름과 암호 및 그 이외의 값을 필요로하기 때문에 함수입니다.
내가 그러나 다음에 내 모델을 변경하고보기 않았다
~/Views/Account/Register.cshtml
을 :
@model Rent_a_Car_MVC.Models.RegisterModel
@{
ViewBag.Title = "Registreren";
}
<h2>@ViewBag.Title.</h2>
@using (Html.BeginForm()) {
@Html.AntiForgeryToken()
<h4>Maak een account aan.</h4>
<hr />
@Html.ValidationSummary()
<div class="form-group">
@Html.LabelFor(m => m.UserName, new { @class = "col-md-2 control-label" })
<div class="col-md-10">
@Html.TextBoxFor(m => m.UserName, new { @class = "form-control" })
</div>
</div>
<div class="form-group">
@Html.LabelFor(m => m.Password, new { @class = "col-md-2 control-label" })
<div class="col-md-10">
@Html.PasswordFor(m => m.Password, new { @class = "form-control" })
</div>
</div>
<div class="form-group">
@Html.LabelFor(m => m.ConfirmPassword, new { @class = "col-md-2 control-label" })
<div class="col-md-10">
@Html.PasswordFor(m => m.ConfirmPassword, new { @class = "form-control" })
</div>
</div>
<div class="form-group">
@Html.LabelFor(m => m.FirstName, new { @class = "col-md-2 control-label" })
<div class="col-md-10">
@Html.PasswordFor(m => m.FirstName, new { @class = "form-control" })
</div>
</div>
<div class="form-group">
@Html.LabelFor(m => m.LastName, new { @class = "col-md-2 control-label" })
<div class="col-md-10">
@Html.PasswordFor(m => m.LastName, new { @class = "form-control" })
</div>
</div>
<div class="form-group">
@Html.LabelFor(m => m.Address, new { @class = "col-md-2 control-label" })
<div class="col-md-10">
@Html.PasswordFor(m => m.Address, new { @class = "form-control" })
</div>
</div>
<div class="form-group">
@Html.LabelFor(m => m.PostalCode, new { @class = "col-md-2 control-label" })
<div class="col-md-10">
@Html.PasswordFor(m => m.PostalCode, new { @class = "form-control" })
</div>
</div>
<div class="form-group">
@Html.LabelFor(m => m.City, new { @class = "col-md-2 control-label" })
<div class="col-md-10">
@Html.PasswordFor(m => m.City, new { @class = "form-control" })
</div>
</div>
<div class="form-group">
<div class="col-md-offset-2 col-md-10">
<input type="submit" class="btn btn-default" value="Register" />
</div>
</div>
}
@section Scripts {
@Scripts.Render("~/bundles/jqueryval")
}
~/Models/AccountModel.cs
을 :
public class RegisterModel
{
[Required]
[Display(Name = "Gebruikersnaam")]
public string UserName { get; set; }
[Required]
[StringLength(100, ErrorMessage = "{0} moet minstens {2} letters bevatten.", MinimumLength = 6)]
[DataType(DataType.Password)]
[Display(Name = "Wachtwoord")]
public string Password { get; set; }
[DataType(DataType.Password)]
[Display(Name = "Bevestig wactwoord")]
[Compare("Password", ErrorMessage = "Wachtwoord en bevestigings wachtwoord komen niet overeen.")]
public string ConfirmPassword { get; set; }
[Required]
[Display(Name = "Voornaam")]
public string FirstName { get; set; }
[Required]
[Display(Name = "Achternaam")]
public string LastName { get; set; }
[Required]
[Display(Name = "Adres")]
public string Address { get; set; }
[Required]
[Display(Name = "Postcode")]
public string PostalCode { get; set; }
[Required]
[Display(Name = "Woonplaats")]
public string City { get; set; }
}
내가 제대로이 일을하고 있습니까? 컨트롤러 만 변경해야합니까? 그렇다면 어떻게해야합니까?
[최소, 완전하며 검증 가능한 예제를 만드는 방법] (http://stackoverflow.com/help/mcve) - 키워드 : ** 최소 ** –
데이터베이스 모델을 업데이트 했습니까? –