在Jquery中使用webservice

时间:2011-12-02 02:23:00

标签: c# jquery asp.net web-services

我使用了一个Jquery截断器解决方案,它由Henrik Nyh整齐地编写,以便读取更多/更少的功能。脚本here

我想修改此代码,以便能够通过更新数据库来跟踪读/未读状态。我担心在webservice中进行数据库更新的代码如下所示。

[WebMethod]

public void updateReadStatus(int ID)
{
//code to update the database
}

我添加了以下内容以使用Jquery

中的Web服务
    function updateStatus(){
            $.ajax({
                type: "POST",
                url: "WebServices/myWebService/updateReadStatus",
                data: "{'ID': " + $("#lblID").Text + "}",
                contentType: "application/json; charset=utf-8",
                dataType: "json",
                success: OnSuccess,
                error: OnError
            });

function OnSuccess(reuslt) {
              alert(result.d);
            }

function OnError(result) {
              alert(result.status + ' ' + result.status);
            }
        }

//and i called this function on this line 

  full_node.find('a:last').click(function() {
  truncated_node.show(); updateStatus(); full_node.hide(); return false;

 //The user control that im using this scrip on has a repeater that contains a div that contains the paragraph to be truncated.

 <div class="readmore">
 <%# Eval("Message_Text")%>
 <asp:Label ID="lblID" runat="server" visible="false"
 </div>

截断脚本工作正常,它给了我想要的功能,阅读更多/更少。但我无法获得我想要的附加功能。我收到“12030未知”错误,我相信问题出在行数据中:

"{'ID': " + $("#lblID").Text + "}", 

如何从lable的文本值中提取参数ID的值,以将其传递给webservice?

2 个答案:

答案 0 :(得分:2)

text是一个函数,而不是属性,因此您需要使用()调用它:

"{'ID': " + $("#lblID").text() + "}", 

另外,如果你想通过Ajax调用给定的WebMethod,你需要用[ScriptMethod]属性来装饰它。

答案 1 :(得分:1)

您没有说出lblID标识的内容,但您应该这样做:

$("#lblID").text()

$("#lblID").val()

请参阅http://api.jquery.com/text/http://api.jquery.com/val/