2

我在通过我正在使用的 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]单击按钮后我的电子邮件和电话的类型字符串的值。

您对如何将我在文本框中输入的实际字符串直接发送到控制器有任何想法吗?

谢谢

4

2 回答 2

3

您的 Javascript 错误,您需要使用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>
于 2013-06-10T15:23:11.530 回答
3

您不是在获取输入字段的值,而是将整个对象本身作为字符串发送。

尝试:

data: { "email": $("#email").val(), "phone": $("#phone").val()},
于 2013-06-10T15:23:26.247 回答