در مورد HiddenField و ...
برای این که بفهمید این کد چکار می کنه و چرا اینجوری نوشته و نهایتا" بهتر بود اینجوری نوشته نشه باید براتون یکم قصه بگم !
کنترل های ASP.NET یه چیزی دارن به نام ViewState . یک مقدار متنی که حاوی آخرین State کنترل هست. (البته در ASP.NET MVC چنین چیزی وجود ندارد.)
از طرفی...