WebMethod的Javascript值
我试图简单地将一些值从Javascript传递到我的codebehind中进行处理。 我只想将一个WebMethod的Javascript值,javascript,asp.net,ajax,json,webmethod,Javascript,Asp.net,Ajax,Json,Webmethod,我试图简单地将一些值从Javascript传递到我的codebehind中进行处理。 我只想将一个数字和消息传递给WebMethod,但根据我所做的更改,会得到不同的错误 JS: 在我的codebehind中,我定义了一个WebMethod,还有一个Message类来保存我的消息 [WebMethod] public static void SendMessage(string message) { //Create a TMessage and deserialize to it
数字
和消息
传递给WebMethod
,但根据我所做的更改,会得到不同的错误
JS:
在我的codebehind中,我定义了一个WebMethod
,还有一个Message
类来保存我的消息
[WebMethod]
public static void SendMessage(string message)
{
//Create a TMessage and deserialize to it
}
消息
:
public class TMessage
{
public string Number { get; set; }
public string Message { get; set; }
}
我的理解是,我正在接收JSON,应该将其反序列化为消息
类型。
但是,我在SendMessage
方法中有一个断点,它从未被命中,返回的错误是:
Message=无效的web服务调用,参数“Message”缺少值。
从之前的一些游戏中,我能够通过将参数从string
更改为object
(以及对Ajax调用中的data:value的一些更改)来命中断点,但随后我似乎收到了一个字典,无法将其转换为TMessage
谢谢您的建议。如果您清楚地了解webmethod,它只有一个参数,即消息
您需要将此消息传递给ajax调用。-<代码>变量参数=“{'message':'”+message+“}”代码>
有用链接-
尝试此操作后,断点被命中,但消息
参数的值为:“[object object]”
何处?它是否在ajax
的success
处理程序中?如果是,则只需使用msg.d
。我的意思是,ajax调用是否与HTTP状态200配合良好?断点在SendMessage(string message)
中的codebehind中命中。但是消息
的值是“[object object]”
。我希望它是类似于我在Ajax调用中传递的值的JSON字符串表示的东西…?does-document.getElementById(“message”)。value
具有实际的字符串值?实际上我有var params=“{'message':'”+message+“}”代码>设置为var params=“{'message':'”+msg+“}”
它现在可以工作,但只发送消息
,而不发送号码。。无论如何,这是一个开始:)
public class TMessage
{
public string Number { get; set; }
public string Message { get; set; }
}
function SendMessage() {
var number = document.getElementById("phonenumber").value;
var message = document.getElementById("message").value;
var params = "{'message':'" + message + "', 'number':'" + number + "'}";
$.ajax({
type: "POST",
url: "Default.aspx/SendMessage",
data: params,
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (msg) {
alert("Message sent");
},
error: function (msg) {
alert("Message call failed");
}
});
}