使用本地asmx的相对路径
本文关键字:相对 路径 asmx | 更新日期: 2023-09-27 18:01:33
在我的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);
}
});
当你在站点的根目录下运行时,它工作得很好,一旦你在其他页面中启动脚本,路径就不正确,所以无法到达asmx .
我试过用波浪形的"~"代替…/但它不起作用…url: "~/WebServicesASMX/PMywebserv.asmx/Test"
是否有可能在我的jquery脚本中指定亲属路径?
VirtualPathUtility来拯救你!
url: "<%= VirtualPathUtility.ToAbsolute("~/WebServicesASMX/PMywebserv.asmx/Test") %>",
查看Rick Strahl的文章:http://www.west-wind.com/weblog/posts/2009/Dec/21/Making-Sense-of-ASPNET-Paths
请注意,要使其工作,脚本需要在由ASP处理的页面中。. NET如aspx, ascx, MVC视图。如果你的脚本是在一个纯js文件中,你需要移动它,或者引用你在ASP中其他地方定义的javascript全局变量。NET代码。
use
<%= ResolveUrl("~/WebServicesASMX/PMywebserv.asmx/Test") %>