2017-02-24 47 views
0

我對JQuery非常陌生。夥計們可以告訴我我的代碼有什麼問題,我想通過ajax發送電子郵件,然後在div中填充返回的字符串。我試圖從我的視圖發送數據到我的控制器使用數據,然後發回一個字符串添加到Dom中。我怎樣才能做到這一點。感謝您的時間和努力。乾杯。Ajax調用發送電子郵件不起作用。

我查看

<!-- Contact form --> 
       <form id="contact-form" name="contact-form" method="POST" data-name="Contact Form"> 

        <div class="row"> 

         <!-- Full name --> 
         <div class="col-xs-12 col-sm-6 col-lg-6"> 
          <div class="form-group"> 
           <input type="text" id="name" class="form form-control" placeholder="Write your name" onfocus="this.placeholder = ''" onblur="this.placeholder = 'Write your name'" name="name" data-name="Name" required> 
          </div> 
         </div> 

         <!-- E-mail --> 
         <div class="col-xs-12 col-sm-6 col-lg-6"> 
          <div class="form-group"> 
           <input type="email" id="email" class="form form-control" placeholder="Write your email address" onfocus="this.placeholder = ''" onblur="this.placeholder = 'Write your email address'" name="email" data-name="Email Address" required> 
          </div> 
         </div> 

         <!-- Subject --> 
         <div class="col-xs-12 col-sm-12 col-lg-12"> 
          <div class="form-group"> 
           <input type="text" id="subject" class="form form-control" placeholder="Write the subject" onfocus="this.placeholder = ''" onblur="this.placeholder = 'Write the subject'" name="subject" data-name="Subject"> 
          </div> 
         </div> 

         <!-- Message --> 
         <div class="col-xs-12 col-sm-12 col-lg-12 no-padding"> 
          <div class="form-group"> 
           <textarea id="text-area" class="form textarea form-control" placeholder="Your message here... 20 characters Min." onfocus="this.placeholder = ''" onblur="this.placeholder = 'Your message here... 20 characters Min.'" name="message" data-name="Text Area" required></textarea> 
          </div> 
         </div> 

        </div> 

        <!-- Button submit --> 
        <button type="submit" id="valid-form" class="btn btn-color">Send my Message</button> 

       </form> 
       <!-- /. Contact form --> 

       <div id="block-answer"> 
        <div id="answer"></div> 
       </div> 

腳本在體溫

$('#valid-form').click(function() { 
     var name = $('#name').val(); 
     var email = $('#email').val(); 
     var subject = $('#subject').val(); 
     var message = $('#message').val(); 
     $.ajax({ 
      url: '/Home/SendMessage', 
      data: { 'name': name, 'email': email, 'subject': subject, 'message': message }, 
      type: "post", 
      cache: false, 
      success: function (status) { 
       $('#answer').text(savingStatus); 
      }, 
      error: function (xhr, ajaxOptions, thrownError) { 
       $('#answer').text("Error encountered while saving the message."); 
      } 
     }); 
    }); 

我的控制器結束

[HttpPost] 
    public string SendMessage(string name, string email, string subject, string message) 
    { 
     var savingStatus = "Success"; 
     return savingStatus; 
    } 
+1

我確實在您的成功功能中看到一個錯字。它應該說'''$('#answer')。text(status);''' – clarmond

+0

只需要執行'data:$(this).serialize(),'。你不需要單獨獲取每個輸入的值,然後創建一個JS對象。 –

+0

即使這是真的先生。我將如何擊中控制器。 –

回答

0

你一個重新使用字符串作爲字段名稱,請用此替換數據。

data: { name: name, email: email, subject: subject, message: message }, 
+0

Nah dude not working1 –

+0

我已經添加了一個即使它沒有擊中控制器 –

+0

請使用控制器名稱前的網址url –

相關問題