Razor: Declarative HTML helpers

Adrian Grigore picture Adrian Grigore · Dec 15, 2010 · Viewed 37.6k times · Source

I'm trying to write a simple declarative html helper:

@helper Echo(string input) {
    @input
}

The helper works fine if I embed it into the page I want to use it on. But if I move it to a separate .cshtml file and place that file in the ~/Views/Helpers directory, my view can't be compiled anymore because the helper is not found. According to Scott Gu's blog article on Razor it should work.

What am I doing wrong?

Answer

marcind picture marcind · Dec 15, 2010

The ~/Views/Helpers location as describe in that ScottGu post will not work in MVC 3 RTM. At the time that article was written it was a design idea we were tossing around but ultimately we were not able to implement it.

Putting your helpers in App_Code works but has certain limitations that impact certain MVC scenarios (for example: no access to standard MVC Html. helpers)