Comparing MVC 3 Helpers: Using Extension Methods and Declarative Razor @helper Syntax - Jon Galloway

Comparing MVC 3 Helpers: Using Extension Methods and Declarative Razor @helper Syntax

HTML Helpers provide a clean way to encapsulate view code so you can keep your views simple and markup focused. There are lots of built in HTML Helpers in the System.Web.Mvc.HtmlHelper class, but one of the best features is that you can easily create your own helpers. While you've been able to create your own helpers since MVC 1 using extension methods, the Razor view engine gives you a new option to create helpers using the @helper keyword.

Extension Method helpers

Previous versions of ASP.NET MVC allowed you to do that by writing extension methods on the HtmlHelper class, and that's still available in MVC 3. Helpers are just methods which return strings, so they're pretty easy to set up. Let's look at an example from the MVC Music Store - a helper which which truncates a string to make sure it's smaller than a specified length.

2011-03-23 13h31_39

The extension method needs to be in a static class, and I generally like to create a separate folder for organization.

2011-03-23 12h56_37

The code is standard extension method syntax - the first parameter uses the this keyword to indicate that it's extending an HtmlHelper, and the rest is just a simple method that returns a string. The method takes a string and a max length, chops the string if needed, and returns the result.

using System.Web.Mvc;
 
namespace MvcMusicStore.Helpers
{
    public static class HtmlHelpers
    {
        public static string Truncate(this HtmlHelper helper, string input, int length)
        {
            if (input.Length <= length)
            {
                return input;
            }
            else
            {
                return input.Substring(0, length) + "...";
            }
        }
    }
}

Note: Make sure you're extending the HtmlHelper defined in System.Web.Mvc and not System.Web.WebPages. The using statement is important.

Our views can make use of this by either importing the namespace with the @using keyword to the views or by adding the helper's namespace to the pages/namespaces element in the web.config.

We could use this in the default Home / Index.cshtml view as below:

@{
    ViewBag.Title = "Home Page";
}
@using RazorHelpers.Helpers

<h2>@Html.Truncate(ViewBag.Message as string, 8)</h2>

Notice that we need to cast the ViewBag.Message as a string, or we'll get a compiler error when the page is rendered: CS1973: 'System.Web.Mvc.HtmlHelper' has no applicable method named 'Truncate' but appears to have an extension method by that name. Extension methods cannot be dynamically dispatched. Consider casting the dynamic arguments or calling the extension method without the extension method syntax.

2011-03-23 14h08_55

Alternative, if we wanted to add the namespace to the web.config in the Views folder, we could use the helper class in all our views without a @using statement. That would look like this:

<system.web.webPages.razor>
  <host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
  <pages pageBaseType="System.Web.Mvc.WebViewPage">
    <namespaces>
      <add namespace="System.Web.Mvc" />
      <add namespace="System.Web.Mvc.Ajax" />
      <add namespace="System.Web.Mvc.Html" />
      <add namespace="System.Web.Routing" />
      <add namespace="RazorHelpers.Helpers" />
    </namespaces>
  </pages>
</system.web.webPages.razor>

Razor Declarative Helpers

Razor allows us to implement this using either an in-page code block or in another file, using a more declarative syntax using an @helper block.

Razor helpers inline

To implement this helper inline, we'd just add the @helper block in the page as shown below.

@{
    ViewBag.Title = "Home Page";
}

@helper TruncateString(string input, int length)
{
    if (input.Length <= length) {
        @input
    } else {
        @input.Substring(0, length)<text>...</text>
    }
}

<h2>@Truncate(ViewBag.Message, 8)</h2>

The code is very similar, but there are a few differences:

  • I've tightened it up a bit since it's able to take advantage of Razor syntax to directly write out the value rather than return a string
  • We also don't need to bother with the this HtmlHelper business because it's not an extension method.
  • We don't need to cast the input as a string, since the Razor engine can figure that out for us on the fly
  • Since it's not an extension method, we directly call @Truncate() rather than @Html.Truncate()

Reusable helpers within your project: Use App_Code

You can move Razor helpers to another file within your project, but you'll need it to be in the App_Code folder. Right-click on the project and select "Add / New Folder" and call the folder "App_Code".

2011-03-23 14h22_50

You'll see that the App_Code folder gets a special icon:

2011-03-23 14h27_27

Now we can add a new Razor view to that folder using "Add / New Item / MVC 3 View Page (Razor)". You can name it what you want, but you'll be using the filename when you call the helper. I called mine CustomHelpers.cshtml.

Replace the generated code in the new CSHTML file with the @helper block we just used above, so the entire source of the new CustomHelpers.cshtml file will read as follows.

@helper TruncateString(string input, int length)
{
    if (input.Length <= length) {
        @input
    } else {
        @input.Substring(0, length)<text>...</text>
    }
}

In order to use that in a view, we call the helper using the name we gave the view page, like this:

@{
    ViewBag.Title = "Home Page";
}

<h2>@CustomHelpers.Truncate(ViewBag.Message, 8)</h2>

Notice that we don't need a @using statement to pull it in, we just call into the CustomHelpers class.

Turning Razor Helpers in reusable libraries

David Ebbo posted about how to turn your Razor helpers into libraries using the Single File Generator. This uses a custom build tool create a .cs or .vb file based on the view, which means you can move it wherever you'd like. Running that generator on the CustomHelpers.cshtml file would create CustomHelpers.cs, which could be used within my project, in a code library, etc.

Summary

Extension method based Custom HTML Helpers still have some benefits. They're code files, they can live in any directory, and since they're extension methods off the HtmlHelper class they're very discoverable - just type @Html. and see them in the list with all the other built in helpers.

Razor declarative helpers have some nice benefits, though:

  • You can easily whip one up inline in a view, then upsize it to a separate files in App_Code, then to a reusable library. I like the low barrier to entry - it removes any thought from writing helpers whenever possible.
  • The syntax is a little simpler - rather than thinking about writing an extension method, you just write some Razor code that writes out values and it all works.
  • Razor helpers are a little more dynamic due to the later compile - e.g. I didn't need to cast the ViewBag.Message to a string.
  • You don't need to worry about namespaces. That's one of the most common problems beginners run into in using the helpers in the MVC Music Store sample.
Published Wednesday, March 23, 2011 3:19 PM by Jon Galloway
Filed under:

Comments

# re: Comparing MVC 3 Helpers: Using Extension Methods and Declarative Razor @helper Syntax

While the new @helper process is great help the few points that you summarize up with introduce bad habits. Here are a few weak points I see.

1. Helpers should be created with plenty of consideration for its reuse and testability. A helper should never be made where it causes a developer to become complacent and unaware of what they are really doing with a helper method.

2. While Razor helpers do suppress the need for explicit casting of data types, this can be very very bad for a beginner. ViewBag.Message being an arbitrary type can cause trouble when it is a type that is not easily converted over to a string. If my controller placed a StreamReader, for example, your helper would cry for mercy.

3. While inline helpers remove the need for worry in regards to namespaces, you end up with a namespace if you want to reuse your helper, which is the entire point of writing one. Otherwise a little segment of inline logic would suffice.

In the end it doesn't help. If you use the local app_code folder you are back at having to manage namespaces. Moving helpers out to a CS Library, and a namespace they need to handle. This new namespace is a little more vague then the standard. Locally you just give it the filename, and those change often so it can muck up things. Externally, now you are creating a namespace with DLL namespace + the_helper_file.

Very good article about bringing things together. How does one go about unit testing these new helpers now?

Thursday, March 24, 2011 2:13 AM by Bryan Wood

# re: Comparing MVC 3 Helpers: Using Extension Methods and Declarative Razor @helper Syntax

The LINQ extension method .Take() will truncate any string for you. The neat thing is that if a string is 10 characters long and you want to take 15, it just returns the 10 without failing.

Thursday, March 24, 2011 3:25 AM by Peter

# re: Comparing MVC 3 Helpers: Using Extension Methods and Declarative Razor @helper Syntax

Didn't  realise that helpers in ASP.NET MVC are declared as extension methods!

I guess no IoC injection then :-(

Thursday, March 24, 2011 4:56 AM by John Simons

# re: Comparing MVC 3 Helpers: Using Extension Methods and Declarative Razor @helper Syntax

Bryan raises some good points for reuse and unit testing. Scott's custom snippets article http://bit.ly/fY2QUy demonstrates reuse.

Thursday, March 24, 2011 10:03 AM by Gary Campbell

# re: Comparing MVC 3 Helpers: Using Extension Methods and Declarative Razor @helper Syntax

I was trying to come up with a @helper the other day that took generic arguments, e.g.

@helper LabelAndControlFor<TModel, TValue>(...)

{

  ...

}

But Razor thought I was going back to HTML as soon as it saw the generic angle brackets in the helper name. Went with an HtmlHelper in the end, but wondered if there was a way of escaping the generic brackets so that razor didn't get confused.

Thursday, March 24, 2011 10:52 AM by Duncan Smart

# re: Comparing MVC 3 Helpers: Using Extension Methods and Declarative Razor @helper Syntax

Hey Jon, I think you have a type when calling the razor helper, you defined it as TruncateString but you're calling it using "Truncate"

Monday, March 28, 2011 12:09 PM by Arturo Molina

# Comparing MVC 3 Helpers: Using Extension Methods and Declarative &#8230; | Google Adsense Keyword

Pingback from  Comparing MVC 3 Helpers: Using Extension Methods and Declarative &#8230; | Google Adsense Keyword

# re: Comparing MVC 3 Helpers: Using Extension Methods and Declarative Razor @helper Syntax

If you're extending the System.Web.Mvc.HtmlHelper class you should be returning an MvcHtmlString.

return MvcHtmlString.Create("string");

Thursday, August 04, 2011 8:22 PM by zeb

# re: Comparing MVC 3 Helpers: Using Extension Methods and Declarative Razor @helper Syntax

Thanks for the post!  It's what I was looking for.  I have questions similar to others that have left comments.  I won't ask though, since there have been no responses to any feedback.

I will say though, I'm surprised to see the amount of published spam comments on this article!!!

Wednesday, August 17, 2011 1:17 AM by Ben

# re: Comparing MVC 3 Helpers: Using Extension Methods and Declarative Razor @helper Syntax

This doesn't work for me.

I created the app_code folder, created the view, put some code in it, but in none of the views are finding the CustomHelpers.etc functions I put there. Is there something else that must be done to make VS link the two together?

Wednesday, October 12, 2011 2:03 AM by Dennis

# re: Comparing MVC 3 Helpers: Using Extension Methods and Declarative Razor @helper Syntax

I got a weird problem with my custom helper class. When i am hitting a action method using $.post, the updated result of helper class is not updating on the view.

Wednesday, October 12, 2011 10:50 AM by Pratap

# HtmlHelpers in MVC3 | PivotFace Home

Pingback from  HtmlHelpers in MVC3 | PivotFace Home

Friday, January 13, 2012 8:12 PM by HtmlHelpers in MVC3 | PivotFace Home

# re: Comparing MVC 3 Helpers: Using Extension Methods and Declarative Razor @helper Syntax

Thanks  for another informative site. Where else could I get that type of info written in such an ideal way' I've a project that I am just now working on, and I've been on the look out for such information.

<a href=>profile

</a>

Thursday, April 12, 2012 9:50 AM by michaelt

# re: Comparing MVC 3 Helpers: Using Extension Methods and Declarative Razor @helper Syntax

Its like you read my mind! You seem to know a lot about this, like you wrote the book in

it or something. I think that you can do with some pics

to drive the message home a bit, but other than that,

this is magnificent blog. A great read. I'll definitely be back.

Saturday, June 02, 2012 3:24 AM by Lomax

# re: Comparing MVC 3 Helpers: Using Extension Methods and Declarative Razor @helper Syntax

Heya i'm for the first time here. I found this board and I to find It really useful & it helped me out much. I hope to give something again and aid others like you helped me.

Sunday, June 03, 2012 3:06 PM by Bullock

# re: Comparing MVC 3 Helpers: Using Extension Methods and Declarative Razor @helper Syntax

Viewer discretion is advised!

Wednesday, July 04, 2012 3:30 PM by Dont let mobility get you down!

# re: Comparing MVC 3 Helpers: Using Extension Methods and Declarative Razor @helper Syntax

Wir sind einer der Louis Vuitton Taschen Online Shop, wir billige Louis Vuitton Taschen bieten, kaufen Sie es auf unserer Louis Vuitton Outlet online!

Wednesday, October 10, 2012 2:14 AM by http://www.beatsbydresodes-pascher.com/

# re: Comparing MVC 3 Helpers: Using Extension Methods and Declarative Razor @helper Syntax

I¡¦m not positive the place you're getting your info, however good topic. I needs to spend some time studying much more or understanding more. Thanks for great info I was on the lookout for this info for my mission.

Friday, October 12, 2012 1:58 PM by xphzumxphr@gmail.com

# re: Comparing MVC 3 Helpers: Using Extension Methods and Declarative Razor @helper Syntax

xmenrk  

fqfcxe  

sxuxpw  

daxtyy  

ujkrjw  

omvcbd

Monday, October 22, 2012 12:01 AM by Jimmybk8bv

# re: Comparing MVC 3 Helpers: Using Extension Methods and Declarative Razor @helper Syntax

ctqop<a href=> danny woodhead jersey </a>

vrrbq<a href=> tom brady jersey </a>

opjog<a href=> jacoby ford jersey </a>

ollor<a href=> jim leonhard jersey </a>

qgbve<a href=> joe flacco jersey </a>

Monday, October 22, 2012 7:48 PM by Jimmyvw0di

# re: Comparing MVC 3 Helpers: Using Extension Methods and Declarative Razor @helper Syntax

oyqgc<a href=> nnamdi asomugha jersey </a>

yizjd<a href=> ryan kerrigan jersey </a>

hmpab<a href=> steven jackson jersey </a>

xrrkz<a href=> jake ballard jersey </a>

cmshi<a href=> christian ponder jersey </a>

Saturday, October 27, 2012 4:15 AM by Jimmymu5uy

# re: Comparing MVC 3 Helpers: Using Extension Methods and Declarative Razor @helper Syntax

Hey there, I think your blog might be having browser compatibility issues. When I look at your blog site in Firefox, it looks fine but when opening in Internet Explorer, it has some overlapping. I just wanted to give you a quick heads up! Other then that, awesome blog!

Saturday, November 03, 2012 7:20 PM by xmdpsgapmq@gmail.com

# re: Comparing MVC 3 Helpers: Using Extension Methods and Declarative Razor @helper Syntax

I'm-a saving the Gold for a couple awesome thing in Cataclysm Mammoth-Equivalent... I hope.

Monday, November 05, 2012 8:10 PM by jwoyll@gmail.com

# re: Comparing MVC 3 Helpers: Using Extension Methods and Declarative Razor @helper Syntax

Howdy would you mind letting me know which hosting company you're using? I've loaded your blog in 3 completely different web browsers and I must say this blog loads a lot faster then most. Can you recommend a good web hosting provider at a fair price? Kudos, I appreciate it!

Sunday, November 11, 2012 12:23 AM by eetwdqu@gmail.com

# re: Comparing MVC 3 Helpers: Using Extension Methods and Declarative Razor @helper Syntax

With havin so much written content do you ever run into any issues of plagorism or copyright violation? My site has a lot of exclusive content I've either created myself or outsourced but it looks like a lot of it is popping it up all over the web without my permission. Do you know any methods to help prevent content from being stolen? I'd genuinely appreciate it.

Friday, November 16, 2012 3:30 AM by lazari@gmail.com

# re: Comparing MVC 3 Helpers: Using Extension Methods and Declarative Razor @helper Syntax

Not look down upon, even if you were unfortunate, to create do not no that is dropping obsessed about a grinning.

Saturday, November 17, 2012 1:50 PM by rspfnjxr@gmail.com

# re: Comparing MVC 3 Helpers: Using Extension Methods and Declarative Razor @helper Syntax

Get into‘big t strive overtime, the most efficient matters arise anytime you the bare minimum be expecting the criminals to.

Saturday, November 17, 2012 7:50 PM by gjtiso@gmail.com

# re: Comparing MVC 3 Helpers: Using Extension Methods and Declarative Razor @helper Syntax

Enjoy is actually imperfect during the nascence, however it increases a lot more as we age with the price of adequately federal reserve.

Thursday, November 22, 2012 5:03 PM by yttoquklfq@gmail.com

# re: Comparing MVC 3 Helpers: Using Extension Methods and Declarative Razor @helper Syntax

My spouse and  I stumbled over here coming from a different page and thought I should check things out. I like what I see so i am just following you. Look forward to looking over your web page again.

Friday, November 30, 2012 6:25 AM by ljomxhqiqa@gmail.com

# re: Comparing MVC 3 Helpers: Using Extension Methods and Declarative Razor @helper Syntax

and ‘More Than Words’ on Viper’s second annual ‘Drum & Bass Summer Slammers 2011′ album. Now to cap off the year, Metrik releases his most complete work to date,

Friday, December 07, 2012 9:59 AM by thdmart@gmail.com

# re: Comparing MVC 3 Helpers: Using Extension Methods and Declarative Razor @helper Syntax

Hello, how are things? I recently mentioned this page with a associate, we had a great chuckle.

Friday, February 01, 2013 5:18 PM by npwnulth@gmail.com

# re: Comparing MVC 3 Helpers: Using Extension Methods and Declarative Razor @helper Syntax

It’s impressive that you are getting ideas from this paragraph as well as from our discussion made at this time.

Saturday, February 23, 2013 8:34 PM by idpkffc@gmail.com

# re: Comparing MVC 3 Helpers: Using Extension Methods and Declarative Razor @helper Syntax

variation teachers see thought of low cost purses being hereditary

decrease of train since skiing in addition stagnant careers

Monday, March 18, 2013 1:41 PM by jordan13oaplc

# re: Comparing MVC 3 Helpers: Using Extension Methods and Declarative Razor @helper Syntax

Thanks for sharing such a good idea, post is fastidious,

thats why i have read it completely

Thursday, March 28, 2013 10:55 PM by Orosco

# re: Comparing MVC 3 Helpers: Using Extension Methods and Declarative Razor @helper Syntax

Will you be able to guide us for your website owner or the guy whom takes care of your blog post, I'd like to determine if it would be possible to certainly be a visitor poster.

Tuesday, April 09, 2013 3:00 AM by svcaibb@gmail.com

# re: Comparing MVC 3 Helpers: Using Extension Methods and Declarative Razor @helper Syntax

I am in love with this web site. I have visited this blog so often.

I found this web site on the search engines. I have received a nice stuff of information.

Many thanks.

Tuesday, April 09, 2013 7:07 AM by Taylor

# re: Comparing MVC 3 Helpers: Using Extension Methods and Declarative Razor @helper Syntax

My partner and I stumbled over here by a different website and thought I should check things out. I like what I see so now i am following you. Look forward to finding out about your web page yet again.

Wednesday, April 10, 2013 7:05 PM by dydnel@gmail.com

# re: Comparing MVC 3 Helpers: Using Extension Methods and Declarative Razor @helper Syntax

Admiring the time and effort you put into your site and in depth information

you present. It’s good to run into a blog every now and then that isn’t the same old spun information.

Fantastic article! I’ve bookmarked your site as well as I’m adding your RSS feeds to my Google account.

Thursday, April 11, 2013 8:12 PM by Funderburk

# re: Comparing MVC 3 Helpers: Using Extension Methods and Declarative Razor @helper Syntax

Well written article. It will be helpful to anybody, which includes me.

Continue the good work. I cannot wait to read more posts.

Thursday, April 11, 2013 10:07 PM by Kuykendall

# re: Comparing MVC 3 Helpers: Using Extension Methods and Declarative Razor @helper Syntax

It¡¦s actually a nice and helpful piece of info. I am happy that you shared this helpful information with us. Please stay us up to date like this. Thanks for sharing

Friday, April 12, 2013 6:04 AM by ifhfrzdxe@gmail.com

# re: Comparing MVC 3 Helpers: Using Extension Methods and Declarative Razor @helper Syntax

Excellent read, I just passed this onto a colleague who was doing some research on that. And he just bought me lunch as I found it for him smile Thus let me rephrase that: Thanks for lunch!

Saturday, April 13, 2013 5:52 PM by txxyhwr@gmail.com

# re: Comparing MVC 3 Helpers: Using Extension Methods and Declarative Razor @helper Syntax

I got and so and so and so prepared to get diablo 3 gold....I want diablo 3 gold all

Sunday, April 14, 2013 5:15 AM by xfcscbu@gmail.com

# re: Comparing MVC 3 Helpers: Using Extension Methods and Declarative Razor @helper Syntax

Favor most of the Michael Kors Outlet truly these people were wonderful around the amazing Kentkucky climatic conditions.they are simply just a little serious

Sunday, April 14, 2013 8:24 AM by fcixvzrgth@gmail.com

# re: Comparing MVC 3 Helpers: Using Extension Methods and Declarative Razor @helper Syntax

super rien à deviser livraison agile et Michael Kors Bags selon très bon état à recommander!!!

Monday, April 15, 2013 2:57 AM by tkkjenj@gmail.com

# re: Comparing MVC 3 Helpers: Using Extension Methods and Declarative Razor @helper Syntax

superbe Buy Miu Miu lettre agile puis excellente annonce que du

Monday, April 15, 2013 4:25 AM by zdkslwk@gmail.com

# re: Comparing MVC 3 Helpers: Using Extension Methods and Declarative Razor @helper Syntax

Romances endure while each individual one family member believes that she has a slight transcendency in the further. nike pas cher http://ruehee.fr/

Monday, April 15, 2013 6:47 AM by jqfxog@gmail.com

# re: Comparing MVC 3 Helpers: Using Extension Methods and Declarative Razor @helper Syntax

Love, take pleasure in take pleasure in Buy Michael Kors! Might possibly be pleased whether a further orthotic program product was initially launched.

Monday, April 15, 2013 1:53 PM by auaqbya@gmail.com

# re: Comparing MVC 3 Helpers: Using Extension Methods and Declarative Razor @helper Syntax

I discovered your blog site on google and verify a few of your early posts. Continue to maintain up the excellent operate. I just extra up your RSS feed to my MSN Information Reader. Seeking ahead to studying extra from you afterward!?

Tuesday, April 16, 2013 4:53 PM by uyxrktsztu@gmail.com

# re: Comparing MVC 3 Helpers: Using Extension Methods and Declarative Razor @helper Syntax

There're as a result hot get a pair of abercrombie jeggings together with tuck Michael Kors Bags when it comes to in that case have been an individual's fav tee and get nice using a a northface fleece protector and get a vera bradly handbag and also your an advanced value woman

Thursday, April 18, 2013 4:48 PM by qjdaxihvr@gmail.com

# re: Comparing MVC 3 Helpers: Using Extension Methods and Declarative Razor @helper Syntax

I was more than happy to search out this net-site.I wanted to thanks for your time for this wonderful read!! I definitely enjoying every little little bit of it and I have you bookmarked to take a look at new stuff you blog post.

Monday, April 22, 2013 3:20 AM by asurch@gmail.com

# re: Comparing MVC 3 Helpers: Using Extension Methods and Declarative Razor @helper Syntax

I抎 must check with you here. Which is not one thing I usually do! I enjoy studying a put up that can make people think. Additionally, thanks for allowing me to comment!

Monday, April 22, 2013 12:59 PM by rxiflai@gmail.com

# re: Comparing MVC 3 Helpers: Using Extension Methods and Declarative Razor @helper Syntax

Gave these wow power leveling to my friend to be a reward ! These wow power leveling Glance terrific and do previous! well worth the price I paid.

Monday, April 22, 2013 3:55 PM by wohvwkaour@gmail.com

# re: Comparing MVC 3 Helpers: Using Extension Methods and Declarative Razor @helper Syntax

La información y los detalles eran simplemente perfecto. Creo que su perspectiva es profunda

Wednesday, May 01, 2013 1:43 PM by nguwshb@gmail.com

# re: Comparing MVC 3 Helpers: Using Extension Methods and Declarative Razor @helper Syntax

Hey, you used to write magnificent, but the last few posts have been kinda boring¡K I miss your super writings. Past few posts are just a little out of track! come on! coach factory acssurgery.com/.../coachfactory.html

Friday, May 03, 2013 3:24 AM by michaelkorsoutlet@gmail.com

# re: Comparing MVC 3 Helpers: Using Extension Methods and Declarative Razor @helper Syntax

I discovered your blog web site on google and check a few of your early posts. Continue to maintain up the extremely superb operate.

Thursday, May 09, 2013 6:31 AM by wffpsjcfurla@gmail.com

# re: Comparing MVC 3 Helpers: Using Extension Methods and Declarative Razor @helper Syntax

I have no idea how you do this but I’m completely fond of this blog.

Friday, May 10, 2013 9:32 PM by capiajtlwjgvhat@gmail.com

# re: Comparing MVC 3 Helpers: Using Extension Methods and Declarative Razor @helper Syntax

I in addition to my guys were following the nice thoughts on your web page and quickly I had a terrible suspicion I had not expressed respect to you for those techniques. Most of the young boys ended up for this reason excited to read them and already have simply been having fun with them. I appreciate you for actually being well kind and also for going for this sort of excellent subject areas most people are really wanting to learn about. My very own sincere apologies for not expressing gratitude to you earlier.

Friday, May 10, 2013 10:20 PM by 00pmjerseys@gmail.com

# re: Comparing MVC 3 Helpers: Using Extension Methods and Declarative Razor @helper Syntax

i really like your post and will read your blog

Saturday, May 11, 2013 1:53 AM by lrzebnzjy@gmail.com

# re: Comparing MVC 3 Helpers: Using Extension Methods and Declarative Razor @helper Syntax

That is the best blog for anyone who wants to search out out about this topic. You understand so much its almost exhausting to argue with you (not that I actually would want匟aHa). You positively put a new spin on a topic thats been written about for years. Great stuff, simply nice!

Saturday, May 11, 2013 6:48 AM by whovog@gmail.com

# re: Comparing MVC 3 Helpers: Using Extension Methods and Declarative Razor @helper Syntax

Colonial's project began with a discussion over what to do with $1.85 million in proceeds from the sale of a parcel of land used for a new senior housing project adjacent to the church. Harrell said one thought was to give the money away, but the church decided to carve out $250,000 for a program that became known as Innov settled on helping people 35 and younger, in part for the impact younger people could have on the church.

Sunday, May 12, 2013 12:08 AM by juzgpd@gmail.com

# re: Comparing MVC 3 Helpers: Using Extension Methods and Declarative Razor @helper Syntax

博西脱下西装外套,把江亦欣紧紧包裹住,把她的脑袋按进自己怀里,热销女装品牌,轻轻得拍着她的背,给她温暖,新款雪纺连衣裙,给她力量,此时无声,更甚有声。

Sunday, May 12, 2013 10:17 AM by yrogcwwoxjt@gmail.com

# re: Comparing MVC 3 Helpers: Using Extension Methods and Declarative Razor @helper Syntax

You understand so significantly its virtually hard to argue with you (not that I actually would want?-HaHa).

Sunday, May 12, 2013 1:40 PM by woskpyjmqs@gmail.com

# re: Comparing MVC 3 Helpers: Using Extension Methods and Declarative Razor @helper Syntax

I feel strongly about it and really like reading additional on this subject.

Monday, May 13, 2013 8:32 AM by lvrinnyncaltz@gmail.com

# re: Comparing MVC 3 Helpers: Using Extension Methods and Declarative Razor @helper Syntax

hello wonderful Blog

Tuesday, May 14, 2013 4:28 AM by otzjebpghai@gmail.com

# re: Comparing MVC 3 Helpers: Using Extension Methods and Declarative Razor @helper Syntax

Customize your 404 pages. <a href="www.phoenixsuns8online.org/">Jordan Retro 8</a> It is inevitable that at some point in time a search engine will lead a customer to a dead link. You can make this heinous event a little more manageable by customizing your 404 page into a fun way to redirect them to the proper site.

Tuesday, May 14, 2013 6:35 AM by oktywn@gmail.com

# re: Comparing MVC 3 Helpers: Using Extension Methods and Declarative Razor @helper Syntax

Can I simply just say what a comfort to find an

individual who truly knows what they are discussing over the internet.

You actually understand how to bring an issue to light and make

it important. More and more people have to read this and understand this side of the

story. It's surprising you're not more popular given that you most certainly possess the gift.

Tuesday, May 14, 2013 12:04 PM by Packer

# re: Comparing MVC 3 Helpers: Using Extension Methods and Declarative Razor @helper Syntax

I'm commenting to make you know of the beneficial experience my cousin's daughter experienced studying yuor web blog. She picked up a wide variety of pieces, including what it's like to possess a great coaching style to make many people completely master selected multifaceted matters. You undoubtedly did more than my desires. Thanks for supplying these beneficial, trustworthy, informative not to mention unique thoughts on this topic to Ethel.

Tuesday, May 14, 2013 2:59 PM by rwyfqcvvfyh@gmail.com

# re: Comparing MVC 3 Helpers: Using Extension Methods and Declarative Razor @helper Syntax

You can use numbers like "the very first X volume of customers get this incentive" or that "everyone is able to have this incentive once they order with this date."

Wednesday, May 15, 2013 4:26 PM by dhzupedze@gmail.com

# re: Comparing MVC 3 Helpers: Using Extension Methods and Declarative Razor @helper Syntax

鍓嶅洖銇紥锛愶紣锛曞勾瑾挎熁銈堛倞锛愶紟锛戯紦浜烘笡銇c仧銆傚嚭鐢熸暟銇寚妯欍仹銇€屽悎瑷堢壒娈婂嚭鐢熺巼銆嶃倐鐭ャ倝銈屻倠銇屻€併亾銇°倝銇湭濠氥倰鍚個濂虫€э紤浜恒亴鐢熸动銇敚銈€銇ㄣ偘銉冦儊銉栥儵銉炽儔銈炽償銉兼兂瀹氥仌銈屻倠瀛愩仼銈傘伄鏁般仹銆佹槰骞淬伅锛戯紟锛擄紮銇犮仯銇熴€?

Wednesday, May 15, 2013 8:47 PM by xwnwrss@gmail.com

# re: Comparing MVC 3 Helpers: Using Extension Methods and Declarative Razor @helper Syntax

I have to convey my gratitude for your kindness in support of those who need assistance with this situation. Your personal dedication to passing the message throughout appeared to be exceptionally helpful and has in every case helped some individuals just like me to arrive at their endeavors. Your amazing invaluable help implies this much to me and even more to my colleagues. Best wishes; from everyone of us.

Thursday, May 16, 2013 12:10 AM by diyozvuwk@gmail.com

# re: Comparing MVC 3 Helpers: Using Extension Methods and Declarative Razor @helper Syntax

かつて私 コメント時間|されている付加チェックボックスと今毎各 もともと私は新しいフィードバックはコメントは私を通知をクリックしたコメントした私が追加されますコメント| 同じと同じメール| 4 4を得る。 アプローチ私に、そのサービスからの|は奪う削除?あなたおそらくすることができますそこにはanyですありがとう!

Thursday, May 16, 2013 8:16 PM by ebfwwonau@gmail.com

# re: Comparing MVC 3 Helpers: Using Extension Methods and Declarative Razor @helper Syntax

手ごわいシェア、私は単に  やっていた同僚に、これを与えられた分析これで。そして彼 私に朝食の結果として 私が発見それ彼のために..笑顔。だから私はことを言い換えるてみましょう:治療のTHNX! しかし 議論するを時間を過ごすためのうんThnkxこの、I 本当に感じるそれについて強く愛する読書 もっとこのトピックに関する。もし潜在は、に成長としての更新専門知識、あなたは思考が気になる余分な 詳細?私のため高い 役立つ便利 | それはだからです。 大このため親指ウェブログ 公開!

Thursday, May 16, 2013 11:59 PM by rsdxkn@gmail.com

# re: Comparing MVC 3 Helpers: Using Extension Methods and Declarative Razor @helper Syntax

You may use numbers like "the 1st X volume of customers get this incentive" or that "everyone is able to have this incentive when they order through this date."

Friday, May 17, 2013 4:49 AM by hrzbtaqupc@gmail.com

# re: Comparing MVC 3 Helpers: Using Extension Methods and Declarative Razor @helper Syntax

A standout in the collection was a perfectly tailored deep Bordeaux-colored pantsuit with leather detailing--the kind of outfit that would seamlessly fit into the wardrobe of a top CEO who needs to move from boardroom to dinner party.

Friday, May 17, 2013 12:23 PM by giwxqhfwrz@gmail.com

# re: Comparing MVC 3 Helpers: Using Extension Methods and Declarative Razor @helper Syntax

omg nunca he comprobado, gracias por decírmelo! Voy a llegar hasta él lo antes posible

Friday, May 17, 2013 1:37 PM by zuzecjw@gmail.com

# re: Comparing MVC 3 Helpers: Using Extension Methods and Declarative Razor @helper Syntax

数今、と あなたにあなたの上に記事ウェブログの後研究調べる勉強を真に。私がブックマークして私のブックマークにウェブサイト チェックリストと可能性が高くなりますしなければならない |もうすぐ再びチェック。 Plsはトライ ウェブサイトオンラインと効果と私はあなたが聞かせ。を

Friday, May 17, 2013 2:43 PM by wtfcfpfojuu@gmail.com

# re: Comparing MVC 3 Helpers: Using Extension Methods and Declarative Razor @helper Syntax

So, if a woman is carrying a stunning Fossil handbag, she is considered a woman of style..

Friday, May 17, 2013 4:01 PM by ieicbsqmu@gmail.com

# re: Comparing MVC 3 Helpers: Using Extension Methods and Declarative Razor @helper Syntax

This summer holiday is filled with a hot and stuffy scent, almost discouraging your willingness to go out, let alone have a long trip.

Saturday, May 18, 2013 4:01 AM by lpcatodfnv@gmail.com

# re: Comparing MVC 3 Helpers: Using Extension Methods and Declarative Razor @helper Syntax

Saturday, May 18, 2013 6:32 PM by airpurifierfiltershvygrfblltoz

# re: Comparing MVC 3 Helpers: Using Extension Methods and Declarative Razor @helper Syntax

welcome come to christian louboutin australia

Saturday, May 18, 2013 11:38 PM by hzypuqd@gmail.com

# re: Comparing MVC 3 Helpers: Using Extension Methods and Declarative Razor @helper Syntax

So make first impression matters when you are making your choice..

Sunday, May 19, 2013 12:36 AM by uccjlfah@gmail.com

# re: Comparing MVC 3 Helpers: Using Extension Methods and Declarative Razor @helper Syntax

It will require that you apply less of this product.

Sunday, May 19, 2013 10:27 AM by mcvqjfowqxj@gmail.com

# re: Comparing MVC 3 Helpers: Using Extension Methods and Declarative Razor @helper Syntax

The subsequent time I read a blog, I hope that it doesnt disappoint me as a lot as this one. I imply, I do know it was my option to read, however I actually thought youd have something interesting to say. All I hear is a bunch of whining about one thing that you might repair if you happen to werent too busy in search of attention.

Sunday, May 19, 2013 10:32 AM by zyaryaro@gmail.com

# re: Comparing MVC 3 Helpers: Using Extension Methods and Declarative Razor @helper Syntax

or perhaps something local likes a consignment shop. Some shops purchase old clothing or enable you to trade for other items within their store.

Sunday, May 19, 2013 11:50 AM by urogeiy@gmail.com

# re: Comparing MVC 3 Helpers: Using Extension Methods and Declarative Razor @helper Syntax

Genuine Marc Jacobs handbags do not have blank zippers.

Sunday, May 19, 2013 8:51 PM by qkapsig@gmail.com

# re: Comparing MVC 3 Helpers: Using Extension Methods and Declarative Razor @helper Syntax

I purposing to stay positive and walk in love.".

Monday, May 20, 2013 1:41 AM by asorzr@gmail.com

# re: Comparing MVC 3 Helpers: Using Extension Methods and Declarative Razor @helper Syntax

This national chain fastidiously presents merchandise with such meticulous retail savvy that they earned a devout following amongst connoisseurs of vintage threads and frugal shoppers alike.

Monday, May 20, 2013 2:07 AM by guxcoev@gmail.com

# re: Comparing MVC 3 Helpers: Using Extension Methods and Declarative Razor @helper Syntax

I don't want any industrials I didn't pay for the team that want drills and hand them any joint.

Monday, May 20, 2013 3:25 AM by gfgoowtb@gmail.com

# re: Comparing MVC 3 Helpers: Using Extension Methods and Declarative Razor @helper Syntax

It arduous to search out educated people on this subject, however you sound like you understand what you?e talking about! Thanks

Monday, May 20, 2013 12:25 PM by cdcibcwjznz@gmail.com

# re: Comparing MVC 3 Helpers: Using Extension Methods and Declarative Razor @helper Syntax

anything that helps him to be aware of the reaction to his actions..

Monday, May 20, 2013 2:51 PM by lpjktygyixo@gmail.com

# re: Comparing MVC 3 Helpers: Using Extension Methods and Declarative Razor @helper Syntax

しっかりとした作りで、デザイン性にも優れていたのですが、何せ重くて結局手放すことになりました�%8

Tuesday, May 21, 2013 12:03 AM by gkoptzmaeu@gmail.com

# re: Comparing MVC 3 Helpers: Using Extension Methods and Declarative Razor @helper Syntax

People come in all different shapes and sizes.

Tuesday, May 21, 2013 12:49 AM by xvpfcqogdy@gmail.com

# re: Comparing MVC 3 Helpers: Using Extension Methods and Declarative Razor @helper Syntax

The portion of a contribution greater than $45 is tax deductible.

Tuesday, May 21, 2013 3:45 AM by axopyorepm@gmail.com

Leave a Comment

(required) 
(required) 
(optional)
(required)