asp.net.net-4.0asp.net-webcontrol

Is there an ASP.NET WebControl for the <p> tag?


Simple question, difficult to search for (due to the main part of the question being the single letter p)!

In ASP.NET, <asp:Panel/> is rendered as a <div></div> block, <asp:Label/> is rendered as a <span></span> block... is there one that renders as <p></p> block?

It doesn't look like it from MSDN for the WebControl class, but I thought I would ask in case I've missed something obvious.

(I realise the obvious solution is to just use <p runat="server" id="p1"></p> and use the generic html control class)


Solution

  • No, there is no built-in control specifically for <p>. A LiteralControl or the <p runat="server" /> version you gave are the closest you will get.

    You could always create your own control, though. You can create a class that implements WebControl, and override the Render method:

    protected override void Render(HtmlTextWriter output)
    {
       output.WriteFullBeginTag("p");
       output.Write(this.Text);
       output.WriteEndTag("p");
    }
    

    There are more instructions on how to write your own server controls here:

    And a list of all of the .NET web and server controls here: