«Сообщение»: «Недопустимый вызов веб-службы, отсутствует значение для параметра: 0027haha -0027

#javascript #jquery #asp.net #ajax

#javascript #jquery #asp.net #ajax

Вопрос:

Я новичок в Jquery Ajax. Мне нужна ваша помощь. Я хочу отобразить один текст рядом с элементом span. Я уже ссылался на некоторые темы, но я не могу это разрешить

Вот моя ошибка в firebug (добавлены новые строки и отступ)

 {"Message":"Invalid web service call, missing value for parameter: u0027hahau0027.",
 "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);
            }
        });
});
  

Заранее спасибо!

Ответ №1:

Изменить data: JSON.stringify(dataToSend), на

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

Предполагается, что $(".txtNoiDung") является уникальным на странице, если это не так, вам понадобится другой механизм для получения значения. Я почти уверен, что вам может сойти с рук $(this).val()) , чтобы получить значение в этом случае.

Комментарии:

1. Пожалуйста, отметьте это как ответ, нажав кнопку с галочкой.

Ответ №2:

Имя параметра из метода всегда должно совпадать с параметром, переданным в данных для вызова Ajax. вместо имен в данных используйте haha (параметр из метода c #).