Since I updated my ASP.NET5 project to beta4 (the one included with Visual Studio 2015 RC), any of my Razor views where I use a helper, such as:
@helper foo()
{
<h2>Bar</h2>
}
results in the following error:
error CS0103: The name 'helper' does not exist in the current context.
Is the @helper
directive no longer supported? Can someone point me to anything useful about the issue?
In .Net Core and above you can use the function derivative to achieve the same purpose:
@functions {
private void RenderFoo()
{
return "<h2>Bar</h2>";
}
}
<div>From method: @{ RenderFoo(); }</div>
Rather than using a helper method, you can achieve the same functionality using a partial with a view model. Just pass the relevant arguments into the Html.Partial command.
The @helper
directive was removed since beta 4 because it imposed too many restrictions on other Razor features: https://github.com/aspnet/Razor/issues/281.
Edit
To be clear: based on the discussion in the GitHub issue(s) Microsoft is not planning to bring the @helper
directive back or replace it in ASP.NET Core.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With