C# – Razor: Declarative HTML helpers

asp.net-mvcasp.net-mvc-3chtml-helperrazor

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?

Best Answer

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)