Question: Why would I ever run Html controls on the server? As in, why would I want to do this?

```
<p runat = "server">This is a paragraph.</p>

```

Answer: 
If you wanted to reference it in the code-behind. Like this:

```
<p id="myParagraph", runat="server"> ...

```

and then in the code-behind:

```
this.myParagraph.Visible = false;

```

I'm not saying you'd set the `Visible` property, I just used it as an example.

Now, the way you have the `<p>` marked up now, you wouldn't be able to do anything with it because it's missing the `id`.
This allows you to set the value and control all attributes server-side

```
<p id="p" runat="server">Value<p>

```

Code Behind:

```
p.Visible = true;
p.text = "NewValue";
p.attributes.add("style", "width:90px");

```

[This link has more info](http://msdn.microsoft.com/en-us/library/7a9d6h4f%28v=vs.100%29.aspx)