In ASP.NET coding, I don't think it is needed to create or declare only ASP.NET server-side controls. Some cases, to make our page more efficient and faster we can write HTML controls by adding runat="server" to access them on server side code [C#].
But, there are some special requirements where we need to create HTML controls dynamically in c# and add them in a string and write the string to a page. And whenever some event raised like button click event, on server side code, we need to retrieve the values of those HTML controls. As it is not declared as runat="server" on the page, we can't take the values very simple. In that type of scenarios, this solution works. Please follow the solution below to get the values of the HTML controls which doesn't have runat="server" attribute defined.
<input type="text" name="txtName" />
string strValue = Page.Request.Form["name of the control"].ToString();
To get the values in server side code of HTML control, we need to follow below points.
- The tag should have an attribute called NAME. Because it is used as key in form.
- The form method should be of type POST.