【问题标题】:I cannot access my Div from the Code behind我无法从后面的代码访问我的 Div
【发布时间】:2017-03-22 06:06:46
【问题描述】:

我无法从 ASP.NET 中的代码访问 div 元素:

在我的 aspx 文件中:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="ContactForm.aspx.cs" Inherits="Form_Mailer_ContactForm" %>
...
<div  runat="server" id="SentFormDiv">
    <s>my content</s>
</div>

在对应的.cs文件内(ContactForm.aspx):

protected void Page_Load(object sender, EventArgs e) 
{
    this.SentFormDiv.Visible=false; 
}

我收到通常的编译错误消息:

不包含“SentFormDiv”的定义并且没有扩展名 方法“SentFormDiv”接受类型的第一个参数 可以找到“xxx.SentFormDiv”(您是否缺少 using 指令或 程序集参考?)

奇怪的是我开始在后面的代码中输入SentFor,Intellisense 确实建议我SentFormDiv!!

我错过了什么?

【问题讨论】:

  • 尝试给它一个名称属性。
  • @PauloJunior 这与它无关。
  • 我猜你的Div 在另一个控件中,如果是这样,你需要使用FindControl。像这样stackoverflow.com/a/40025036/2946329
  • @ S.Akbari :是个好主意,但这不是我的问题。我的 div 不在 asp 控件中。另外,如果我在 标记之后使用另一个 diff 进行相同的测试,问题仍然存在。

标签: c# html asp.net code-behind


【解决方案1】:

请参考此SO 问题寻求帮助。没有看到你的完整代码,就没有办法给你一个明确的答案。另外,顺便说一句,this.SentFormDiv 可以简化为SentFormDiv

【讨论】:

  • 是啊! :) 这篇文章中的一个建议成功了。这不是主要答案,而是这个:问题是您可能有多个 aspx 文件,页面指令中的 codefile 指向相同的代码隐藏文件。它期望相同的控件存在于链接到相同代码的所有 aspx 文件中,从而引发编译错误。感谢一吨Ethilium!
  • 很高兴帮助 AD。我自己也遇到过这个问题(我相信很多人也遇到过)。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-02-27
  • 1970-01-01
  • 1970-01-01
  • 2020-01-11
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多