2017-04-02 20 views
0

두 개의 양식이 내 홈페이지에 있습니다 (연락처 양식과 경쟁 양식은 모두 부분적입니다), 둘 다 별도의 컨트롤러와 모델을 가지고 있습니다.ViewData.ModelState.IsValid 한 면도기보기에 포함 된 모든 (부분) 양식에 대한 발사 확인

나는 전자 메일을 보낼 수없는 경우 오류 메시지를 표시하는 다음 코드를 가지고 있습니다. 대신! ViewData.ModelState.IsValid는 모두 같은 결과를 반환하기 때문에 두 컨트롤러

  if (emailService.Send(EmailMessageBuilder.BuildUserEmail(model.FullName, model.EmailAddress, model.PhoneNumber)) != EmailState.Success) 
      { 
       ModelState.AddModelError("Email", "There was a problem sending the Email. Please try again later, or call us."); 
       return CurrentUmbracoPage(); 
      } 

문제에

if (!ViewData.ModelState.IsValid) 
{ 
    <div class="form-failure"> 
     <h4><i class="fa fa-close"></i>@Model.FailureTitle</h4> 
     @Html.Raw(Model.FailureContent) 
    </div> 

이메일 오류 코드는 두 형태에 오류가 표시됩니다. 요청이 제출 된 양식에만 오류가 표시되도록하려면 어떻게해야합니까? 그것은을 ViewData

if (emailService.Send(EmailMessageBuilder.BuildUserEmail(model.FullName, model.EmailAddress, model.PhoneNumber)) != EmailState.Success) 
{ 
    ViewData["Form"] = "Form1"; 
    ModelState.AddModelError("Email", "There was a problem sending the Email. Please try again later, or call us."); 
    return CurrentUmbracoPage(); 
} 

에 형성

} 

답변

1

당신은 저장할 수있는 그런 다음

무효
if (!ViewData.ModelState.IsValid && ViewData["Form"] == "Form1") 
{ 
    .... 
} 
+0

큰 어떤 형태로 볼 수있는 HTML에서 확인! 그게 ... 고마워. 폴 – Paul