I need to create custom html helper method. As far as I know there are two ways:
Use @helper razor syntax. http://weblogs.asp.net/scottgu/archive/2011/05/12/asp-net-mvc-3-and-the-helper-syntax-within-razor.aspx
Create HtmlHelper extension method.
What solution is better and why? What are advantages and disadvantages?
I only read that in MVC 3 when @helper is created globally in seperate .cshtml file it's impossible to use other build-in html helpers. Don't know maybe in MVC 4 it is possisble.
Please help.
What solution is better and why?
It depends.
What are advantages and disadvantages?
@helper
:
@helper
:
Actually the thing is that @helper
is IMHO completely useless. When you want the advantages I mentioned about a custom HtmlHelper extension, you, well, build a custom HtmlHelper extension.
And if you are confronted to some of the disadvantages I mentioned about the custom HtmlHelper extension, you, well, use a partial view.
I only read that in MVC 3 when @helper is created globally in seperate .cshtml file it's impossible to use other build-in html helpers.
That's wrong. You could perfectly fine use other Html helpers. You just have to pass them as parameters:
@helper FooBar(HtmlHelper html) {
feel free to use the html helper here
}
and when consuming from a view:
@HelperName.FooBar(Html)