ASP.NET MVC: Razor @helper vs extension methods to

2019-06-17 01:14发布

The Razor view engine in ASP.NET MVC supports @helper to define little helper methods. It seems you can do much the same by adding extension methods to HtmlHelper. In what situations is it best to use each?

2条回答
等我变得足够好
2楼-- · 2019-06-17 01:43

Yes, that's true, though the @helpers seem a bit easier to work with if there's a good chunk of markup that's included--Html extensions and more extensive markup don't go that well together, IMO.

On the other hand, @helpers can't be unit tested like Html extensions.

查看更多
The star\"
3楼-- · 2019-06-17 01:53

Subjective question, so here's my subjective and biased answer: When the helper code involves amounts of C# code use a custom HtmlHelper and when it's primary markup you could use @helper. But assuming that when you have markup you could use a partial like @Html.Partial("_foo", SomeModel) or an editor/display templates like @Html.EditorFor(x => x.Foo), the @helper doesn't really have any practical use. Personally I've never used @helper by the way, and I've never recommended it's usage to people I've been consulting.

查看更多
登录 后发表回答