我正在调用静态WebMethod&需要访问网页路径.. Server.MapPath
。
但是因为实例变量在静态方法中是不可访问的。我们无法在WebMethod.
[WebMethod]
public static string GetLogs()
{
//Can't use Server.MapPath("Resource.xml");
}
此外,因为这是一个AJAX调用,所以不能使用其他工作,比如在Page_Load等期间将Server.MapPath
结果存储在用户定义的属性中是不行的。
我发现这是一个不可避免的问题,我迟早需要访问WebMethod中的页面实例变量,但在AJAX调用期间无法访问它们。
该问题的解决方法是什么?
答案 0 :(得分:0)
您应该能够以这种方式使用Server.MapPath的静态实例:
using System.Web;
[WebMethod]
public static string GetLogs()
{
string resource = HttpContext.Current.Server.MapPath("Resource.xml");
}