我的网络方法如下
static FileTypeData DataLine = null;
static string FilePath = "";
static string MarketName = string.Empty;
static string FileType = string.Empty;
[WebMethod]
public static string GetData (string MarketName, string Category, string Symbol)
{
MarketName = MarketName.ToLower();
FileType = "";
Category = Category.ToLower();
Symbol = SymbolToLower();
return Start();
}
MarketName
,FileType
,Category
和Symbol
是private static
个变量。
问题是当离开GetData
web方法并转移到Start
方法时,这些变量将重置为其初始值,这意味着它们是空的。我想知道为什么会出现这种行为。
注意:我通过ajax请求调用此Web方法。
答案 0 :(得分:1)
如果方法的参数与静态变量的名称相同,则将使用这些参数。因此,为MarketName
分配值会更改参数的值,而不会更改变量的值!
要更改此设置,您必须在变量名称前面添加类的名称:
[WebMethod]
public static string GetData (string MarketName, string Category, string Symbol)
{
MyClassName.MarketName = MarketName.ToLower();
// ...
}
重要提示:如果要在Start()
中使用这些值,则应传递这些参数,而不是使用静态变量!