2016-06-10 2 views
0

저는 프로젝트의 등록 부분을 작업하고 있습니다. 사용자가 계정을 등록하기를 원하면 사용자는 주소, 도시, 우편 번호, 이름, 성 등을 입력해야합니다 (아래 모델에서 설명).ASP.NET MVC에서 등록 파트를 편집하는 방법은 무엇입니까?

어떻게 접근 할 수 있습니까?

나는 다음과 같은 코드를 변경 시도

:

~/Controllers/AccountController.cs : 나는 UserProfilewebpages_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; } 
} 

내가 제대로이 일을하고 있습니까? 컨트롤러 만 변경해야합니까? 그렇다면 어떻게해야합니까?

+1

[최소, 완전하며 검증 가능한 예제를 만드는 방법] (http://stackoverflow.com/help/mcve) - 키워드 : ** 최소 ** –

+0

데이터베이스 모델을 업데이트 했습니까? –

답변

3

This link 단계별 지침을 제공합니다

  1. 응용 프로그램을 실행 및 등록 : 아래

    를, 난 당신이 문서에 설명 된대로 완료해야합니다 단계의 간단한 요약을 포함했다 사용자

  2. 엔터티 프레임 워크 마이그레이션 사용
  3. 저장하려는 프로필 정보 (주소, 도시, 우편 번호 등)에 대한 속성을 추가합니다.
  4. 추가 마이그레이션 새 속성
  5. 업데이트 AccountController의 등록 작업 사용자
  6. 응용 프로그램을 실행뿐만 아니라 새 속성을 저장하고 등록하기위한 필드를 추가 할 수있는 응용 프로그램을 수정 데이터베이스
  7. 을 수정하는 방법 사용자가 다시 새로 추가 된 속성의 값을 입력하기위한 테스트 상자가 나타납니다. 8. 페이지에서 프로필 정보 표시 (선택 단계)

나는 이것이 당신이하려는 일이라고 생각합니다. 내가 오해 한 경우 알려주십시오.

+0

이 링크는 질문에 대답 할 수 있지만 답변의 핵심 부분을 여기에 포함시키고 참조 용 링크를 제공하는 것이 좋습니다. 링크 된 페이지가 변경되면 링크 전용 답변이 유효하지 않게 될 수 있습니다.- [리뷰에서] (리뷰/저품절 포스트/12644289) – Chris

+1

크리스에게 감사드립니다 !!! 저는 StackOverflow를 처음 접했고 온라인 커뮤니티에 대해 배우려고합니다. 귀하의 의견은 정말로 도움이되었습니다. 나는 그 지위를 편집했다. –

관련 문제