C# 使用本地asmx的相对路径

C# 使用本地asmx的相对路径,c#,jquery,asp.net,web-services,asmx,C#,Jquery,Asp.net,Web Services,Asmx,在我的asp.net webapp中,我使用本地Web服务检索数据。系统在弹出窗口中(实际上是另一个页面) 下面是jquery代码: $(document).ready(function () { $('#ddlToBind').change(function () { var parameter = "{'aId':'" + $("#ddl").val() + "'}"; $.ajax({ url: "..

在我的asp.net webapp中,我使用本地Web服务检索数据。系统在弹出窗口中(实际上是另一个页面) 下面是jquery代码:

$(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);
            }
        });
$(文档).ready(函数(){
$('#ddlToBind').change(函数(){
var参数=“{'aId':'”+$(“#ddl”).val()+“}”;
$.ajax({
url:“../WebServicesASMX/PMywebserv.asmx/Test”,
数据:参数,
数据类型:“json”,
类型:“POST”,
contentType:“应用程序/json”,
成功:功能(数据){
$('#ddlToBind>option')。删除();
对于(变量i=0;i
当您在站点的根目录下时,它工作良好,并且一旦您在其他页面中启动脚本,路径就不正确,因此无法访问asmx

我尝试用波浪号“~”代替../但不起作用..
url:“~/WebServicesASMX/PMywebserv.asmx/Test”


是否可以在我的jquery脚本中指定相关路径?

VirtualPath的救援功能

url: "<%= VirtualPathUtility.ToAbsolute("~/WebServicesASMX/PMywebserv.asmx/Test") %>",
url:“”,
请参阅Rick Strahl的这篇文章:

请注意,要使其工作,脚本需要位于ASP.NET处理的页面中,例如aspx、ascx、MVC视图。如果脚本位于普通js文件中,则需要移动它,或引用ASP.NET代码中其他地方定义的javascript全局变量。

使用

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

感谢选择您的解释