gpt4 book ai didi

c# - div runat ="server"静态方法中的空引用异常

转载 作者:太空宇宙 更新时间:2023-11-04 15:34:37 24 4
gpt4 key购买 nike

我在 aspx 页面中有一个 div,它设置为在服务器上运行。

<div class="article-container" runat="server" id="divArticleContainer"></div>

现在这个 div 将通过静态方法添加一个用户控件:

public static void LoadCurrentArticle(int index)
{
divArticleContainer.Controls.Clear();
Page pg = new Page();
string path = @"/Frontend/Controls/Article/ArticleItem.ascx";
ArticleItem control = (ArticleItem)pg.LoadControl(path);
control.Functionality.article = Functionality.articles.ElementAt(index);
divArticleContainer.Controls.Add(control);
}

基本上是为了给您一个简短的概述,我的程序正在加载新闻文章列表。在触摸手势(向左或向右滑动)时,对网络方法 GetNext() 和 GetPrevious() 的 ajax 调用将移动到列表中的下一项或上一项。

[WebMethod]
public static void GetNext(int index)
{
int idx = index;
idx++;
if (idx < Functionality.articles.Count())
{
LoadCurrentArticle(idx);
Functionality.index = idx;
}
else
{
idx = 0;
LoadCurrentArticle(idx);
Functionality.index = idx;
}
}

[WebMethod]
public static void GetPrevious(int index)
{
int idx = index;
idx--;
if (idx >= 0)
{
LoadCurrentArticle(idx);
Functionality.index = idx;
}
else
{
idx = Functionality.articles.Count() - 1;
LoadCurrentArticle(idx);
Functionality.index = idx;
}
}

我的主要问题是“divArticleWrapper”返回空引用异常。有解决这个问题的方法吗? enter image description here

最佳答案

在静态方法中,您无法访问页面控件 divArticleWrapper ...

您不能从静态方法访问非静态控件。

静态方法只能访问静态变量..

编辑

静态方法无法访问实例状态(例如非静态控件)。从方法声明中删除静态,或将对控件的引用作为参数传递给方法:

private static void YourStaticMethod(HtmlControl div) 
{
//than do your task
}

...然后这样调用它:

YourStaticMethod(divArticleWrapper); 

关于c# - div runat ="server"静态方法中的空引用异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10331824/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com