【问题标题】:Get the text of label in static method using C#?使用 C# 在静态方法中获取标签文本?
【发布时间】:2016-03-07 17:10:37
【问题描述】:

我有一个静态函数,我想在其中获取 LABEL1 的值

[WebMethod]
public static string SetFileNameU(List<string> someValues)
{
        string journey = Convert.ToString(someValues[0]);
        Label tbx = _________("Label1", true).FirstOrDefault() as Label;

        return "ss";
}

现在我应该在那里做什么?请告诉我

【问题讨论】:

  • 有理由想要使用静态方法吗?您将创建一个潜在问题,多个用户会更改价值并影响其他所有人。
  • 哪个页面的Label1? WebMethod 可能会从一些客户端代码调用......所以到那时我们不再处于页面请求的上下文中。
  • 你不需要调用 WebService 来获取页面上的标签,你可以使用 javascript 找到它并节省大量带宽

标签: c# asp.net static-methods


【解决方案1】:

您无法访问label 文本,因为当您调用静态方法时,它没有视图的实例。这就是为什么你不能直接访问它们,也不能使用Controls Collection。

你必须使用另一种方式来返回你想要的值。也许将所需的值存储在另一个静态变量中。

例如:

public static class MyClass {
    public static string AndHisNameIs;
}

public void SomewhereInTheCode() {
    ....
    MyClass.AndHisNameIs = "JOHN CEENA";
    ....
}

[WebMethod]
public static string SetFileNameU(List<string> someValues)
{
    string journey = Convert.ToString(someValues[0]);
    return MyClass.AndHisNameIs;
}

【讨论】:

  • 不要在网络环境中使用静态变量。使用同一应用程序域的所有访问者(通常是您网站的所有访问者)都将共享该静态变量。
猜你喜欢
  • 2016-08-17
  • 1970-01-01
  • 2011-07-14
  • 2011-10-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-01-30
相关资源
最近更新 更多