2013-06-10 2 views
2

У меня возникли проблемы с отправкой моих данных на контроллер через запрос ajax, который я использую.Отправка текста контроллеру с помощью метода Ajax

В настоящее время, на мой взгляд, у меня есть

<p>Please enter your email and phone number registered with the account</p> 
    <table id="Table"> 
    <tr> 
     <td>Email</td> 
     <td> <input id = "email" type ="text" name= "email" /></td> 
    </tr> 
    <tr> 
     <td>Phone Number</td> 
     <td> <input id = "phone" type ="text" name= "phone" /></td> 
    </tr> 
</table> 

<input type="button" value="Submit" id="sendMSG"> 

и следующий сценарий

<script src="http://code.jquery.com/jquery-1.9.1.js"> 
     </script> 

<script> 
$("#sendMSG").click(function() { 
    $.ajax({ 
     type: "POST", 
     url: '@Url.Action("SendMessage", "SMSTest")', 
     dataType: "JSon", 
     data: { "email": $("#email").toString(), "phone": $("#phone").toString()}, 
     success: function (data) { 
      console.log(data); 
     }, 
     error: console.log("it did not work"), 
    }); 
}); 
</script> 

Когда я вызываю функцию, я отправляю его к моему SMSTestController

public JsonResult SendMessage(string email, string phone) 
     {} 

что я в настоящее время получают по электронной почте и телефону значения [object Object], который является типом st как для электронной почты, так и для телефона после нажатия кнопки.

Есть ли у вас какая-либо идея о том, как отправить фактическую строку, которую я вводил в текстовое поле непосредственно на контроллер?

Благодаря

+2

Чтобы получить значение входного, вы должны написать: $ ("# почта") Val();. –

+0

@ Joffrey Kem благодарит кучу! оцените это: D – user2094139

+0

Добро пожаловать :) –

ответ

3

Вы не захватывая значения полей ввода, а вы отправляете на все объекты сами по себе в виде строк.

Try:

data: { "email": $("#email").val(), "phone": $("#phone").val()}, 
3

ваш браузер неправильно, то вы должны использовать val():

<script> 
$("#sendMSG").click(function() { 
    $.ajax({ 
     type: "POST", 
     url: '@Url.Action("SendMessage", "SMSTest")', 
     dataType: "JSon", 
     data: { "email": $("#email").val(), "phone": $("#phone").val()}, 
     success: function (data) { 
      console.log(data); 
     }, 
     error: console.log("it did not work"), 
    }); 
}); 
</script> 
+1

.toString() на самом деле является функцией JavaScript. –

+0

Так что не, никогда не использовал его .... :) – Liam

+0

На стороне записки, если у меня есть следующие в моем контроллере, если (string.IsNullOrEmpty (model.phone)) { возвращение Json (новый { Сообщение = «Требуется телефон», Status = «error»}, JsonRequestBehavior.AllowGet); } Как я могу использовать это, чтобы показать предупреждение в представлении? – user2094139

Смежные вопросы