Be The Geek

Benefits of Html Helpers in Asp.Net MVC

So today i am going to give an overview on Html helpers in Asp.Net MVC . So first questions that stuck our mind are -

 What are Html helpers ?
 Why to use them instead of using simple Html coded controls
 What are their benefits in Asp.Net MVC

Html helpers are very much similar to Asp.Net web controls . But Html helpers are much more lightweight as compared to Web forms Server controls . The similarity between server controls in webforms and Html helpers in Asp.Net MVC are Viewstate . Means they both contain the ability to hold or update the data on postbacks using ViewStates for each controls .

Main  Benefits Of using Html Helpers in MVC

  • MVC Html Helpers contains Overloaded Methods like IPostBackDataHandler that Pre-populate the values of html helpers means it works similar to as viewstates
  • Html Helpers is also having one more advantage It provide inbuilt Validation for html helpers textboxes 
Available HTML Helpers 

There following HTML helpers can be used to render (modify and output) HTML form elements:

  1. BeginForm()
  2. EndForm()
  3. TextArea()
  4. TextBox()
  5. CheckBox()
  6. RadioButton()
  7. ListBox()
  8. DropDownList()
  9. Hidden()
  10. Password()

Sample Code To Demonstrate Use of Html Helpers


<%= Html.ValidationSummary("Create was unsuccessful. Please correct the errors and try again.") %>
<% using (Html.BeginForm()){%>
<label for="FullName">FullName</label>
<%= Html.TextBox("FullName") %>
<%= Html.ValidationMessage("FullName", "*") %>
<label for="Username">Username</label>
<%= Html.TextBox("Username") %>
<%= Html.ValidationMessage("Username", "*") %>
<label for="Password">Password:</label>
<%= Html.Password("Password") %>
<%= Html.ValidationMessage("Password", "*") %>
<label for="Password">Confirm Password:</label>
<%= Html.Password("ConfirmPassword") %>
<%= Html.ValidationMessage("ConfirmPassword", "*") %>
<%= Html.CheckBox("ReceiveNewsletter") %>
<label for="ReceiveNewsletter" style="display:inline">Receive Newsletter?</label>
<input type="submit" value="Register" />


@Html.ValidationSummary("Create was unsuccessful. Please correct the errors and try again.")
@using (Html.BeginForm()){ 
<label for="FullName">FullName</label>
@Html.ValidationMessage("FullName", "*")  
<label for="Username">Username</label>
@Html.ValidationMessage("Username", "*")  
<label for="Password">Password:</label>
@Html.ValidationMessage("Password", "*")  
<label for="Password">Confirm Password:</label>
@Html.ValidationMessage("ConfirmPassword", "*")  
<label for="ReceiveNewsletter" style="display:inline">Receive Newsletter?</label>
<input type="submit" value="Register" />

Advantage of Asp.Net MVC  is a part of .net platform for creating,building, deploying and running web applications using C#,VB etc .we can develop a web application by using Asp.Net Web Form and Asp.Net MVC. Asp.Net MVC is advanced technology that is most widely used nowadays . MVC is a great thing available for developers that makes work of developers easy and more flexible .

MVC stands for Model-View-Controller . MVC separates the code in 3 different things that make the code cleaner , flexible and easy to understand and modify . So Today I am going to tell some of big advantages or some good things that Asp.Net MVC provides as compared to Web-forms . This is not a comparison of Web-forms and MVC this is just overview or advantages or features that Asp.Net mvc provides us

1. Rapid Application Development ( RAD ) :- So first I will start with biggest advantage of Mvc and this is the thing that is most in demand in Enterprises and everywhere in development area . This is Rapid application development . Asp.Net MVC provides Database First Approach for developing WebApplications . This approach is used with Scanfolding Technique this technique is like a magic provided in Asp.Net MVC . Scanfolding technique tells if you have designed your database in good manner that means if you have Created Normalized Database with all like Primary keys, foreign keys ,One-many , many-many relationships then you need not to do more effort for developing rest on your application in Asp.Net MVC Rest of things will be created with less efforts using scanfolding . With Asp.Net MVC you can have your simple basic website ready within 1 minute after you created your Database . So that was explanation to RAD in Asp.Net MVC

In Pic below we are choosing MVC5 scanfolding template

Then it automatically generate code for us

2. Partial Layouts :- In Asp.Net we ofter use User controls that were used for code reusability we create a user control then where we require that type of code that we coded in user control we call that user control there . In similar way Partial Layouts is provided in Asp.Net MVC .Partial Layouts are very useful things provided in Asp.Net MVC . Partial Layouts are like Master Pages that we use in Asp.Net web-forms . These are used as master pages or master layouts that can be called in any view in Asp.Net MVC . Like in php we use include ( "partialheader.php" ); to include some header in all pages or some specific pages so instead of writting that code in all pages we call then there . Similar in Asp.Net Web-Forms We use content placeholders and contentplaceholders are placed in Master Pages and when we call these master pages and use then in child forms then code of child forms is placed in content placeholder area In the similar way Partial layout works . The partial layout contains @Renderbody in Razor view then replace the child page or code of  page that is calling it

3. MVC Is  Stateless : Asp.Net was Statefull by using viewstates or sessions but MVC is stateless . It will be wrong to say mvc is stateless it would say http is stateless . By stateless i mean there is nothing in http that holds the user session or that record the activity of user when user logged in etc so this was maintained or state was maintained using viewstate and sessions . This was used in Webforms because they contain server controls that contains viewstate and that postback the values and update viewstates But there is not server controls in Asp.Net MVC So it does not maintain states . It has divided the code in three patterns model-view-controller that handles everything That's why it says MVC is stateless But in actual http is stateless that why MVC is stateless

4. No Events : As we came to know there are no server controls in Asp.Net MVC so there are no events for any control as there are not server controls All this is handled by connection of controllers with views where views hold your html code or designing code and controller hold your logics code .

Difference Between ViewState and Session in Asp.Net

"View State and Session "
  The Two main State Management things used in Web applications . We cannot even think of an application without ViewState and Session . So today i decided to gave an overview of what is the difference between viewstate and session why these two terms exist and what are their usage To clearify this difference i am giving some points below

1. So First of all what is a Session ? -- A Session is a Time or a span of time upto which user used that webapplication or for how much session of how much period of time user has used your webapplication will be called session . Session contains some values that will be used throughout the user interaction with the webapplication and used in more than one webpage that user navigate So we can say that it is a variable in simple sense that takes our value from one page to another and Session got distroyed or killed automatically after a particular span or time or it is automatically destroyed or cleared when like user signout of application or when user close the browser

A live example would be a web application where a user login . Each user that logs into your system will have a unique session. We can hold additional data into the session which can be used as the user browses your site. We can hold the username, userrole, userpermissions simply by adding it to the session:

Session[“userrole”] = “programmer”; 
Session[“username”] = “Ageek”; 
Session[“userpermissions"] = “cangotohell”; 

A Session  stores the information on the server side  . It stores the values or it uses server memory for storage of data that it holds in . Session variables will use different new and unique session variables for each different user that logs in to web application . large amount of data can be stored on the session, web sites that have a large amount of traffic not use this method, because it will put a severe load on the server memory.

2. Now What is ViewState ? -- so we are clear with session now comes the turn of viewstate . So ViewState is also used for holding our important data But in case of viewstate data is kept in the single viewstate page . It means viewstate data is not taken from one page to another page in this point it is different from session . 

ViewState is only used to Track to analyse the changes that occur to current page during postbacks of data to pages .The viewstate of page can be viewed if you right click on webpage and then clickon view page source then you will see some code of lines similar to below code --

<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value=””></input>

If you are having large number of viewstate fields then it will make the postbacks very slow as all viewstate values will be needed to updated during postbacks so it will make the webpage open slower

Data can be written into viewstate like we do in sessions . But it can retain that data only with life cycle of page after that it will be changed or updated .If you closes that page or redirects to another page then viewstate data will be reset .

How to fill data in viewstate and how to access that data 
ViewState[“PreviousPage”] = “”; 

Retrieving data form ViewState:
string PreviousPage = ViewState[“PreviousPage”].ToString();  

Display Category on Product Page in Opencart

Necessity is the advent of everything today while doing some project i got requirement from my client to show the categories of the product to which that particular product belongs along with the product on the product view page So in order to accomplish this task we have to perform some simple and easy steps :

  • In your open-cart folder whether it is online or offline double click on Catalog Folder
  • Then inside Catalog folder double click on Controller folder
  • Then inside Controller Folder double click on Product Folder
  • Then inside Product Folder open Product.php file in your text editor
  • Then Search for following line in Product.php file


  • When this line found just below this line add the following code 

//product category


$this->data['catprod'] = array();

$product_category = $this->model_catalog_product->getCategories($product_id);

foreach ($product_category as $prodcat) {

$category_info = $this->model_catalog_category->getCategory($prodcat['category_id']);

if ($category_info) {

$this->data['catprod'][] = array(
'name' => $category_info['name'],
'href' => $this->url->link('product/category', 'path=' . $category_info['category_id'])

//end of product category

  • Then again come in root folder of opencart
  • In your open-cart folder whether it is online or offline double click on Catalog Folder
  • Then inside Catalog folder double click on view folder
  • Then inside Controller Folder double click on theme Folder
  • Then inside Product Folder open your currently applied theme folder
  • Then inside theme folder open template folder

Change Apache Port Number in Wamp

After Installation of Wamp you may suffer from an Error . Today i am giving some easy solution to this error . This error may come if you have already Installed IIS Server on your windows Computer .
you may see one of these Errors :

 "Microsoft HTTP/API 2.0" Using Port 80

 WAMP - Your port 80 is actually used 

Solution 1
To Solve Problem of "Microsoft HTTP/API 2.0" Using Port 80

  • Click Start
  • Then click  Control Panel
  • Change the view  from Category to Small/Large Icons
  • Then click on Administrative Tools
  • Then click on Services
  • Find "Web Deployment Service Agent"
  • Right click on it and then choose Properties
  • Then Click Stop
  • Change it's Start Up value to "Manual"
  • Then click on  Apply to save 
  • Then go to wamp in quick launch bar and click on it then click on Restart all services
  • Now your problem will be solved
Solution 2
To Solve Problem of  WAMP - Your port 80 is actually used 

As we know WAMP by default use port 80 but if port 80 is already in use by some other application then it will not be get started and Apache component of WAMP will not be installed to provide its services One solution is to find the application that is creating the problem then change the port number of that application But this is very difficult to follow solution as it is not easy to find the software that is creating problem .

It could be anything from IIS, SQL Reporting Services, even Skype can be found to use port 80. Also check if you have Web Platform Installer installed which can use port 80

So the best solution to solve this problem is use change the wamp configuration for Apache port and change the port from 80 to some other like 81

Steps For Change Apache Port Number In WAMP

  • Click on Wamp Icon on quick Launch Bar 
  • In popup Menu click on Apache and then in further menu click on httpd.conf
  • It will open httpd.conf file in your editor like you can use Notepad
  • Now Press Ctrl + f and find for line given below :

                                                                          Listen 80
  • Now Replace these lines with given below :

Listen 81

  • Now it's done . Press Ctrl +s  to save all changes and close the httpd.conf file
  • Now again click on wamp icon in Quick Launch Bar and click On Restart All Services 
  • Now open your Browser and fill the url : localhost:81/ and click Enter .
  • Cheers its Done