我应该在哪里找到MVC Razor中共享的@helper函数

Chr*_*ris 43 c# asp.net-mvc helper-functions razor

我有一个辅助功能,可以将分钟变成几小时/分钟.我目前在layout.cshtml中有它,但每个页面都看不到该功能.我应该在哪里放置辅助功能,以便每个页面都可以看到它?

@helper DisplayElapsedTime(int timeInMins){
    String timeStr = "";
    if (timeInMins >= 60) {
        int hours = timeInMins/60;
        timeInMins -= hours * 60;
        timeStr = hours + "h ";
    }
    if (timeInMins > 0){
        timeStr += timeInMins + "m";
    }
    @timeStr;
}
Run Code Online (Sandbox Code Playgroud)

pet*_*kyy 40

您应该将它放入App_Code文件夹中.有一篇很棒的文章供您阅读ASP.NET MVC Helpers

  • @AndrewHoffman它仍然有效,只是在mvc5项目中测试过它.注意文件名.我必须引用它:@ <filename>.<helperName>() (3认同)
  • 您可以手动创建它。它将按预期工作。只需将其放入您的MVC应用程序的根目录中并命名为App_Code。 (2认同)
  • 人们可能和我一样处于相同的情况,但这是行不通的。请注意,您不能在 App_Code 文件夹中混合编程语言!因此,如果那里有 cs 文件,则无法添加 cshtml 文件。参考 https://msdn.microsoft.com/en-us/library/t990ks23.aspx (2认同)