asp.net 代码可在桌面上使用,但不能在移动的上使用

kwvwclae  于 2023-01-14  发布在  .NET
关注(0)|答案(1)|浏览(149)

我正在开发ASP.NET应用程序,其中代码在本地IIS上工作正常,桌面和移动都可以。但是,当我将代码复制到生产服务器时,它在桌面上工作正常,但在移动上不行。我在过去几天一直在努力解决这个问题,但仍然没有成功。
这是错误:
[空引用异常:对象引用未设置为对象的示例。] BasePage. OnLoad(EventArgs e)+368
系统. Web. UI.控件.加载递归()+54
系统. Web.用户界面.页面.处理请求主节点(布尔型包含异步点之前的阶段,布尔型包含异步点之后的阶段)+772
这是我的基页代码,它似乎有问题:

HtmlGenericControl liItem1 = new HtmlGenericControl();

liItem1 = (HtmlGenericControl)this.Master.FindControl("logtop_bar");

liItem1.Attributes.Add("style", "display:block");

我不明白为什么它只对小屏幕移动设备抛出错误。
但同样的情况不会在当地环境中重现。

0yg35tkg

0yg35tkg1#

根据[Ondrej Svejdar]的答案构建...在您的解决方案中可能有一个Site.Master和一个Site.Mobile.Master。选择其中一个的机制可能不会选择Mobile版本,即使您期望它。请尝试以下操作

// the assignment below is not needed since you are assigning it again on the very next line
//HtmlGenericControl liItem1 = new HtmlGenericControl();
HtmlGenericControl liItem1 = (HtmlGenericControl)this.Master.FindControl("logtop_bar");
// this line below will print which master page you are using
Response.Write(this.Master.MasterPageFile);
// only set the attribute if it is not null.
if (liItem1 != null) {
    liItem1.Attributes.Add("style", "display:block");
}

此外,如果您总是设置样式(我没有看到任何条件),那么只需在页面的标记中进行设置。

相关问题