c # - erro usando FindControl no div id

Eu tenho um site asp.net que estou tentando acessar elementos div por sua identificação do código C # por trás do arquivo. Essencialmente, quero ver se existe um elemento div e, em caso afirmativo, alterar suas propriedades.

Eu encontrei muitos recursos que apontam para uma dúzia de soluções diferentes e nenhum deles parece funcionar.

HTML na página ASP.Net:

<div class="contentArea">
     <div class="block" id="button1" runat="server">
            Some Content Here
     </div>
     <div class="block" id="button2" runat="server">
            Some Content Here
     </div>
     <div class="block" id="button3" runat="server">
            Some Content Here
     </div>
</div>

C # Code Behind (exemplos que eu tentei):

System.Web.UI.HtmlControls.HtmlGenericControl div1 = (System.Web.UI.HtmlControls.HtmlGenericControl)this.FindControl("button1");
div1.Attributes["class"] = "classNameHere";

ou

Control div1 = this.FindControl("button1");
div1.GetType();

Quando o código chega à segunda linha de cada um dos exemplos acima, recebo um erro:

Referência de objeto não definida para uma instância de um objeto.

Se eu tentar o seguinte:

if (div1 != null)
{
    // Do Something;
}

Nada acontece porque div1 é sempre definido como null. Ironicamente, se eu olhar para a janela Locals e examinar isso, eu posso ver os # ids do botão na listagem, então eu sei que eles estão lá, mas o sistema está agindo como se não estivesse encontrando o controle.

Meu objetivo final é encontrar o número máximo de id do botão divs (olhando para o meu exemplo de html, o id max seria 3 (button3). Talvez haja uma maneira melhor de fazê-lo, mas de qualquer forma, uma vez que eu tenho o meu max id, quero poder tocar em cada div e alterar algumas propriedades do css.

Embora eu pudesse facilmente fazer tudo isso via jQuery, neste caso eu preciso fazer isso em C #.

Qualquer ajuda é muito apreciada. Se você precisar de mais informações, me avise.

ATUALIZAR Eu criei um novo projeto web c # a partir do zero. Depois de adicionar uma página-mestre (e não de alterá-la) e adicionar um formulário da Web usando a página-mestre, só adicionei uma linha ao formulário da web em Content ID = "Content2":

<div id="button1"></div>

De código c # por trás ainda me deparo com o mesmo problema exato de antes.

ATUALIZAÇÃO E RESPOSTA FINAL Estou chocado ninguém (inclusive eu) pegou meu erro da atualização acima. Eu nunca coloquei runat = "server" quando criei um novo projeto do zero sob o div. Aqui está como eu consertei meu problema com meu novo projeto do zero:

Adicione runat = "server" ao div:

<div id="button1" runat="server"></div>

Então eu fiz um FindControl no ContentPlaceHolder sob a MasterPage:

ContentPlaceHolder myPlaceHolder = (ContentPlaceHolder)Master.FindControl("ContentPlaceHolder1");

Nota: É assim que o código ContentPlaceHolder se parece na página Site.Master criada por padrão:

<asp:ContentPlaceHolder ID="ContentPlaceHolder1" runat="server">

</asp:ContentPlaceHolder>

Depois de encontrar este ContentPlaceHolder no código por trás, eu procurei dentro deste espaço reservado por button1:

using System.Web.UI.HtmlControls;
HtmlControl myControl = (HtmlControl)myPlaceHolder.FindControl("button1");

Finalmente eu verifico se myControl é nulo:

if (myControl != null)
{
    \\ Do Something
}

Quando eu corri este código, encontrei o div que eu estava procurando. Aqui está o código completo por trás de todos juntos:

using System.Web.UI.HtmlControls;

ContentPlaceHolder myPlaceHolder = (ContentPlaceHolder)Master.FindControl("ContentPlaceHolder1");
HtmlControl myControl = (HtmlControl)myPlaceHolder.FindControl("button1");

if (myControl != null)
{
    // Do Something
}

questionAnswers(4)

yourAnswerToTheQuestion