C# 当HTML元素没有runat=";服务器";属性

C# 当HTML元素没有runat=";服务器";属性,c#,asp.net,C#,Asp.net,我有一个ASP.NET C#网站,当点击一个按钮时,我试图从页面中的html检索内部html 我的问题:我使用函数FindControl(),但当它应该找到元素时,它返回null。为什么会这样,我做错了什么 我的HTML页面: <%@ Page Title="test" Language="C#" MasterPageFile="~/Site.master" AutoEventWireup="true" CodeBehind="test.aspx.cs" Inherits="tes

我有一个ASP.NET C#网站,当点击一个按钮时,我试图从页面中的html检索内部html

我的问题:我使用函数FindControl(),但当它应该找到元素时,它返回null。为什么会这样,我做错了什么

我的HTML页面:

<%@ Page Title="test" Language="C#" MasterPageFile="~/Site.master" AutoEventWireup="true"
    CodeBehind="test.aspx.cs" Inherits="test" %>

<asp:Content ID="BodyContent" runat="server" ContentPlaceHolderID="ActualContent">
    <div class="regMainContainer mainContainer container">
            <!-- Attempting to get the below div -->
            <!-- Knowtice it does not have runat="server", 
                 I would prefer not to do that if I dont need to -->
            <div id="courseDiv" class="courseContainer">
            </div>
    </div>
</asp:content>

FindControl只能找到具有runat=“server”属性的控件。好消息是,您可以轻松地将div更改为面板,并以这种方式添加数据

坏消息是,这仍然不允许您访问div的innerhtml,.net将其视为其他控件的容器


最好的方法是使用某种形式的ajax,因为客户端脚本能够读取这些内容并将其传递给服务器端方法

您将无法对未标记为runat=“server”的内容使用FindControl。这是因为任何未标记为runat=“server”的元素在运行时都会被解析为一个巨大的文本文本。不过,您可以将runat=“server”添加到任意html元素。

谢谢,您能提供一个面板方式的示例吗?是…看我对这个问题的回答:
HtmlGenericControl d = (HtmlGenericControl)FindControl("courseDiv");