0

嗨 iam 第一次在 asp.net 中使用 JSON。

我的 aspx 代码:

        <script type="text/javascript">
    $('#imgbtnGo').click(function () {
          alert("Hi");
    var valService = $("#ddlService").val();
          alert("valService"+ valService);
    $.ajax({
        type: "GET",
        url: "/VoyageOneService.svc/BindVoyageDetails?valService =" + valService,
        contentType: "application/json; charset=utf-8", 
        dataType: "Json",
        processdata: true,
        success: function (msg) {
            ServiceSucceeded(msg);
        },
        error: ServiceFailed
    });

   });
   function ServiceSucceeded(result) {
                alert(result);
  }
</script>

         <asp:DropDownList ID="ddlService" runat="server" Width="100px" TabIndex="1"></asp:DropDownList>
        <asp:ImageButton ID="imgbtnGo" runat="server" ImageUrl="~/image_repository/go_icon.png"  />

     <asp:ScriptManagerProxy ID="ScriptProxyVoy" runat="server">
       <Services>
        <asp:ServiceReference Path="~/VoyageOneService.svc" />
    </Services>
</asp:ScriptManagerProxy>

..

我的服务是:

             public string BindVoyageDetails(int serviceid)
{
                     /// Coding here..
                   Serialization
           MemoryStream stream = new MemoryStream();
    DataContractJsonSerializer serializer = new DataContractJsonSerializer(typeof(VoyageMaster));
    serializer.WriteObject(stream, objVoyMstr);
    stream.Position = 0;
    StreamReader streamReader = new StreamReader(stream);
    return streamReader.ReadToEnd(); 

}

我希望我在服务方面很完美,但是当我点击我的按钮时,我并没有触发该服务....

我找不到原因,请任何人帮忙

4

3 回答 3

1

您正在使用这样的按钮 ID

$('#imgbtnGo').click(function () 

buttimgbtnGo不是页面呈现后按钮的实际 ID,因此您可以获取它,ClinetID或者您需要ClientIDMode="Static"为按钮设置。

<asp:ImageButton ID="imgbtnGo" runat="server" ImageUrl="~/image_repository/go_icon.png" ClientIDMode="Static"  />
于 2013-03-21T07:33:57.123 回答
0

除了 Sachin 给出的 JavaScript 建议更改之外,您还需要向 Web 方法添加以下属性(为了使其以 JSON 格式发出响应):

[WebMethod]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)] 

来源:ASP.NET JSON Web 服务响应格式

于 2013-03-21T07:36:13.037 回答
0

您还需要使用绑定binding="webHttpBinding",通过以下链接 http://www.codeproject.com/Articles/132809/Calling-WCF-Services-using-jQuery

于 2013-03-21T08:07:14.427 回答