2017-04-02 13 views
0

私は自分のホームページに2つのフォームを持っています(接触フォームと競合フォームの両方が部分的です)。ViewData.ModelState.IsValid 1つの剃刀ビューに含まれるすべての(部分)フォームの発砲チェック

私は、電子メールが送信に失敗した場合、エラーメッセージを表示する次のコードを持っています。両方のコントローラで

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

メールエラーコード

  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(); 
      } 

!ViewData.ModelState.IsValidは、両方に同じ結果を返すため、問題はどちらの形式上のエラーが表示されています。リクエストが送信されたフォームにのみエラーが表示されるようにするにはどうすればよいですか?それは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

関連する問題