Click here to Skip to main content
11,415,973 members (84,827 online)
Click here to Skip to main content
Technical Blog

Tagged as

2 simple ways to create Custom Html Helper in ASP.NET MVC

, 25 Jul 2014 CPOL
Rate this:
Please Sign up or sign in to vote.
In one of previous ASP.NET MVC Tutorial, we discussed about Html Helpers in ASP.NET MVC and get answers to following questions: What are Html Helpers in ASP.NET MVC? What are Standard Html Helpers? What Standard Html Helpers renders? Standard Html Helpers are very useful but limited to common scenar

In one of previous ASP.NET MVC Tutorial, we discussed about Html Helpers in ASP.NET MVC and get answers to following questions:

  • What are Html Helpers in ASP.NET MVC?
  • What are Standard Html Helpers?
  • What Standard Html Helpers renders?

Standard Html Helpers are very useful but limited to common scenarios like rendering links and Html form elements etc. But for a specific scenario, we might need to create a Custom Html Helper. ASP.NET MVC facilitates us to create our Custom Html Helper in following simple ways:

  1. Creating Extension Method on Html Helper Class
  2. Creating Static Methods

Custom Html Helpers

ASP.NET MVC Custom Html Helper using Extension Method

If we want a custom Html Helper to be used just like standard Html helper, then available approach is to create an extension method on Html Helper class. Custom Html Helpers we create using Extension methods will be available to Html property of View.

For the purpose of implementation, we will create a custom Html Helper i.e. “CustomImage” using extension method approach as follows:

namespace CustomHelpers
{
    public static class ImageHelper
    {
          public static MvcHtmlString CustomImage(this HtmlHelper htmlHelper,
                                                                   string src, string alt, int width, int height)
          {       
                   var imageTag = new TagBuilder("image");
                   imageTag.MergeAttribute("src", src);
                   imageTag.MergeAttribute("alt", alt);
                   imageTag.MergeAttribute("width", width.ToString());
                   imageTag.MergeAttribute("height", height.ToString());                   
                   
                   return MvcHtmlString.Create(imageTag.ToString(TagRenderMode.SelfClosing));           
            }
     }
}

In order to make this extension method available in all Views, we will add CustomHelper namespace to namespace section of View’s web.config as follows:

<add namespace=&rdquo;CustomHelpers&rdquo; />

Now we can use CustomImage helper in Views. We will pass image source, alternate text, image width and height to our View as follows:

@Html.CustomImage(&ldquo;../Images/Ahmad.jpg&rdquo;, &ldquo;Mohammad Ahmad&rdquo;, 150, 200)

Using the same approach, we can create any Custom Html Helper to simplify the task of writing lots of Html code repeatedly.

ASP.NET MVC Custom Html Helper using Static Methods

Second available approach for creating Custom Html Helper is by using Static Methods. It’s also as simple as that of above mentioned Extension Method approach. We will create a static method for TextBox that renders an HTML TextBox as string.

namespace CustomHelpers
{
    public static class CustomTextBox
    {
          public static string TextBox(string name, string value)
          {       
                  return String.Format("<input id=&rsquo;{0}&rsquo; name=&rsquo;{0}&rsquo; value=&rsquo;{1}&rsquo; type="text" />", name, value);                   
          }
     }
}

Verify the namespace is added to Web.Config namespace section as we did before for Extension Method approach.

<add namespace=&rdquo;CustomHelpers&rdquo; />

Now, we can simply use the CustomTextBox in our View as follows:

@CustomTextBox.TextBox(&ldquo;strStudentName&rdquo;, &ldquo;Mohammad Ahmad&rdquo;)

We can use the Static Method approach to generate more HTML rich Custom Helper in ASP.NET MVC.

Other Related Articles:

The post 2 simple ways to create Custom Html Helper in ASP.NET MVC appeared first on Web Development Tutorial.

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

Share

About the Author

Imran Abdul Ghani
Software Developer (Senior) Emaratech
United Arab Emirates United Arab Emirates
Imran Abdul Ghani has more than 10 years of experience in designing/developing enterprise level applications. He is Microsoft Certified Solution Developer for .NET(MCSD.NET) since 2005. You can reach his blogging at WCF Tutorials, Web Development, SharePoint for Dummies.
Follow on   Twitter   Google+   LinkedIn

Comments and Discussions

 
GeneralSimplere Pin
Gaurav.Kumar.Arora27-Oct-14 11:23
memberGaurav.Kumar.Arora27-Oct-14 11:23 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.

| Advertise | Privacy | Terms of Use | Mobile
Web03 | 2.8.150427.4 | Last Updated 25 Jul 2014
Article Copyright 2014 by Imran Abdul Ghani
Everything else Copyright © CodeProject, 1999-2015
Layout: fixed | fluid