2012-01-19 4 views
1

게시 여러 번 모델은 모델에 등MVC - Ajax.BeginForm - 나는 문의 양식을 만들었습니다

단순히 .. 이름, 이메일, 전화 번호로 구성되어 나는 몇 가지에 대한 몇 가지 간단한 필수 속성이 속성.

유효성 검사 오류가 발생하지 않았을 때이 모든 것이 효과적입니다. 양식이 제출되었으며 사용자에게 작은 "감사합니다"메시지가 표시되었다는 이메일을 받았습니다.

내 문제는 유효성 검사가 실패 할 때입니다. 텍스트 상자 등에서 일반적인 빨간색 경계선을 얻습니다. 이제 사용자가 유효성 검사 요구 사항과 일치하는 텍스트 상자를 업데이트하고 다시 제출하면 두 개의 전자 메일이 발송됩니다. 둘 다 정확한 세부 사항이 있습니다. 그러나 내가받은 전화 (전자 메일)의 수를 검증하는 데 실패하는 경우가 많습니다.

나는 MVC에 아주 익숙하다. 그래서 나에게 올바른 방향으로 나를 가리킬 수 있다면 좋을 것이다.

건배,

J

형태 :

using (Ajax.BeginForm("ProcessContact", "Contact", null, new AjaxOptions { UpdateTargetId = "subContentWrapper", })) 
      { 
      @Html.ValidationSummary() 

      <p> 
       <strong>Please tell us a little about you and the nature of your enquiry </strong> 
      </p> 
      <table> 
       <tr> 
        <td style="width: 200px;"> 
         Name: 
        </td> 
        <td>@Html.TextBoxFor(x => x.Name, new { @class = "textBox" }) 
        </td> 
       </tr> 
       <tr> 
        <td> 
         Company Name: 
        </td> 
        <td>@Html.TextBoxFor(x => x.CompanyName, new { @class = "textBox" }) 
        </td> 
       </tr> 
       <tr> 
        <td> 
         E-mail: 
        </td> 
        <td>@Html.TextBoxFor(x => x.Email, new { @class = "textBox" }) 
        </td> 
       </tr> 
       <tr> 
        <td> 
         Phone: 
        </td> 
        <td>@Html.TextBoxFor(x => x.Phone, new { @class = "textBox" }) 
        </td> 
       </tr> 
      </table> 

      <br /> 
      <br /> 
      <p style="text-align: center"> 
       <input type="submit" value="Contact Us" /></p> 
      } 
     } 

코드 :

if (ModelState.IsValid) 
     { 
      if (ContactService.ProcessContactSubmission(model)) 
      { 
       ViewBag.Sent = true; 
      } 
      else 
      { 
       ViewBag.Sent = false; 
       ModelState.AddModelError("", "Sorry an error has occured, please try again later."); 
      } 
      return PartialView("~/Views/Modules/Contact Us/Main.cshtml", model); 
     } 
     else 
     { 
      ViewBag.Sent = false; 
      return PartialView("~/Views/Modules/Contact Us/Main.cshtml", model); 
     } 

ContactService.ProcessContactSubmission (모델) -이 그냥 이메일을 보내고 true/false를 반환

+0

희망이 도움? –

+0

코드 스 니펫을 포함하도록 게시물을 업데이트했습니다. 감사합니다 – Diginari

+0

"subContentWrapper"는 무엇입니까? AJAX 양식을 둘러싼 DIV입니까? – Moshe

답변

0

@jamie 폼을 여러 번 제출했는지 여부를 판단 할 수 있습니까? 가능한 경우 ProcessContactSubmission 코드도 게시하십시오. 또한 그 희망을 (ModelState.IsValid) 루프 또는 뭔가, 만약 그렇다면 알려 주시기 바랍니다 무엇

0

이전 스레드하지만 모자에 내 발견을 던질 줄 알았는데.

아약스 양식의 제출 버튼을 사용하여 양식을 제출했는데 제출할 때마다 게시물 수가 늘어났습니다.

모든 것을 확인했거나 눈에 잘 띄지 않는 js 파일 등을 확인 했으므로 제출 버튼을 수동으로 양식을 제출하는 표준 입력 태그로 변경하고 헤이 프레스토, 단일 게시물 만! 대신

<input type="submit" value="Next" /> 

<input type="button" value="Next" onclick="$('#formtosubmit').submit();" /> 

는 다른 당신은 당신의 코드 PLZ를 게시 할 수

관련 문제