2017-01-11 2 views
0

지금은 nancy 데이터 주석을 사용하여 모델의 유효성을 검사하고 있지만 모델이 유효하지 않은 경우보기에서 모델 상태에 액세스하는 방법 (Super Simple View Engine 사용)이 확실하지 않습니다. 예를 들면 다음과 같습니다.보기에서 낸시 액세스 모델 상태

  Post("/register", async args => 
     { 
      ViewBag.ReturnUrl = Request.Query.returnUrl; 
      ViewBag.LoginProviders = _signInManager.GetExternalAuthenticationSchemes().ToList(); 

      var model = this.BindAndValidate<RegisterViewModel>(); 

      if (ModelValidationResult.IsValid) 
      { 
       var user = new ApplicationUser { UserName = model.Email, Email = model.Email }; 
       var result = await _userManager.CreateAsync(user, model.Password); 

       if (result.Succeeded) 
       { 
        var adminUsers = await _userManager.GetUsersInRoleAsync("admin"); 
        if (!adminUsers.Any()) 
        { 
         if (!await _roleManager.RoleExistsAsync("admin")) 
         { 
          var roleResult = await _roleManager.CreateAsync(new IdentityRole 
          { 
           Name = "admin", 
           NormalizedRoleName = "admin" 
          }); 

          if (roleResult.Succeeded) 
          { 
           await _userManager.AddToRoleAsync(user, "admin"); 
          } 
         } 
         else 
         { 
          await _userManager.AddToRoleAsync(user, "admin"); 
         } 
        } 

        await _signInManager.SignInAsync(user, isPersistent: false); 
        Logger.LogInformation(3, "User created a new account with password."); 

        return Response.AsRedirect("~/"); 
       } 
      } 

      return View["register.html", model]; 
     }); 

모델의 유효성을 확인한 후 사용자를 다시 등록보기로 돌려 놓으면 어떻게 그 오류에 액세스 할 수 있습니까? 현재 오류를 출력하는 도우미 메서드가있는 것처럼 보이지 않지만 뷰의 오류에 액세스 할 수있는 일종의 사전이있을 것이라고 생각했습니다. 낸시의 게시물에 오류를 출력하는 기준은 무엇입니까?

답변

1

model 대신 ModelValidationResult을 다시보기로 전달해야합니다.

+0

글쎄, 난 그냥 아약스 요청으로 변경하고 모델 유효성 검사 결과를 그런 식으로 보냈다. –

관련 문제