2011-07-07 6 views
0

私のasp.net webappでは、ローカルのWebサービスを使用してデータを取得しています。システムは、(ウィッヒは、実際には別のページである) は、だからここjqueryのコードのポップアップである:それは良い取り組んでいるローカルasmxを消費する相対パス

$(document).ready(function() { 
    $('#ddlToBind').change(function() {    
     var parameter = "{'aId':'" + $("#ddl").val() + "'}"; 
     $.ajax({ 
      url: "../WebServicesASMX/PMywebserv.asmx/Test", 
      data: parameter, 
      dataType: "json", 
      type: "POST", 
      contentType: "application/json", 
      success: function (data) { 
       $('#ddlToBind>option').remove(); 
       for (var i = 0; i < data.d.length; i++) { 

        $("#ddlToBind").append("<option value='" + data.d[i].Id + "'>" + data.d[i].Name + "</option>"); 
       };          
      }, 
      error: function (xmlHttpRequest, textStatus, errorThrown) { 
       alert(errorThrown); 
      } 
     }); 

サイトのルートにあるとしているときは、他のページでスクリプトを起動したら、パスは

url: "~/WebServicesASMX/PMywebserv.asmx/Test"はそれをする可能性..です

私は../の代わりに「〜」チルダを試みたが、それは動作しません...ので、ASMXに達していない正しくありません。 jqueryスクリプトで親戚のパスを指定しますか?

答えて

1

レスキューへのVirtualPathユーティリティ!

url: "<%= VirtualPathUtility.ToAbsolute("~/WebServicesASMX/PMywebserv.asmx/Test") %>", 

このリックシュトラールによってポストを参照してください:このスクリプトを動作させるためにASP.NETなどによって処理されているページであることが必要であることをhttp://www.west-wind.com/weblog/posts/2009/Dec/21/Making-Sense-of-ASPNET-Paths

注意をaspx、ascx、MVCビュースクリプトがプレーンjsファイルにある場合は、スクリプトを移動するか、ASP.NETコード内の別の場所で定義したjavascriptグローバル変数を参照する必要があります。

+0

おかげで、説明のために、それはあまりにも働いている – bAN

1

使用

<%= ResolveUrl("~/WebServicesASMX/PMywebserv.asmx/Test") %> 
+0

Thxをし、あなたを選択してください! – bAN