【发布时间】:2014-12-14 00:12:15
【问题描述】:
我试图简单地将一些值从 Javascript 传递到我的代码隐藏中进行处理。
我只想将Number 和Message 传递给WebMethod,但会根据我更改的任何内容得到不同的错误。
JS:
function SendMessage() {
var number = document.getElementById("number").value;
var message = document.getElementById("message").value;
var msg = {
"Number": number,
"Message": message
};
$.ajax({
type: "POST",
url: "Default.aspx/SendMessage",
data: JSON.stringify(msg),
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (msg) {
alert("Message sent");
},
error: function (msg) {
alert("Message call failed");
}
});
}
在我的代码隐藏中,我定义了一个 WebMethod 和一个 Message 类来保存我的消息
[WebMethod]
public static void SendMessage(string message)
{
//Create a TMessage and deserialize to it
}
Message:
public class TMessage
{
public string Number { get; set; }
public string Message { get; set; }
}
我的理解是我正在接收 JSON,应该将其反序列化为 Message 类型。
但是我在SendMessage 方法中有一个断点,它永远不会被击中,返回的错误是:
Message=Invalid web service call, missing value for parameter: 'message'.
从之前的一些游戏中,我能够通过将参数从 string 更改为 object 来获得断点(以及对数据的一些更改:Ajax 调用中的值),但后来似乎我是收到Dictionary,但我无法将其转换为TMessage。
感谢您的任何建议。
【问题讨论】:
标签: javascript asp.net ajax json webmethod