“消息”:“无效的Web服务调用,缺少参数值:\ u0027haha \ u0027

时间:2011-11-06 16:37:56

标签: javascript jquery asp.net ajax

我是Jquery Ajax的新手。我需要你的帮助。我想在span元素旁边显示一个文本。我已经完成了一些主题的参考,但我无法解决它

这是我在firebug中的错误(添加了换行符和缩进)

{"Message":"Invalid web service call, missing value for parameter: \u0027haha\u0027.",
 "StackTrace":"
   at System.Web.Script.Services.WebServiceMethodData.CallMethod(Object target, IDictionary`2 parameters)
   at System.Web.Script.Services.WebServiceMethodData.CallMethodFromRawParams(Object target, IDictionary`2 parameters)
   at System.Web.Script.Services.RestHandler.InvokeMethod(HttpContext context, WebServiceMethodData methodData, IDictionary`2 rawParams)
   at System.Web.Script.Services.RestHandler.ExecuteWebServiceCall(HttpContext context, WebServiceMethodData methodData)",
 "ExceptionType":"System.InvalidOperationException"}

在aspx中

<asp:TextBox ID="txtNoiDung" runat="server" TextMode="MultiLine" CssClass="txtNoiDung"></asp:TextBox><span id="vltxtNoiDung"></span>

在代码背后

  [WebMethod()]
    public static string test1cai(string haha)
    {
        return haha;
    }

在Javascript中

$(".txtNoiDung").focusout(function () {
        var dataToSend = { names: $(this).val() };
        $.ajax({
            type: "POST",
            url: "QuanLyTin.aspx/test1cai",
            data: JSON.stringify(dataToSend),
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            success: function (msg) {
                $("#vltxtNoiDung").text(msg.d)
            },
            error: function (xhr, reason, ex) {
                alert(reason);
            }
        });
});

提前致谢!

2 个答案:

答案 0 :(得分:7)

data: JSON.stringify(dataToSend),更改为

data: JSON.stringify({
    haha: $(".txtNoiDung").val()
}),

这假设$(".txtNoiDung")在页面中是唯一的,如果不是,则需要另一种获取值的机制。我很确定你可以通过$(this).val())来获得这种情况下的价值。

答案 1 :(得分:0)

方法中的参数名称应始终与Ajax调用数据中传递的参数相同。 而不是数据中的名称使用haha(来自c#方法的参数)。