在我看来....CSHTML 在顶部的加载器,例如用于 SVG
@functions {
public string GetSVG(string path)
{
return File.ReadAllText(Server.MapPath(path));
}
}
但正是我在"几个视图"中需要的这个功能......我可以在哪里放置此方法?
HomeController.cs? <- 它不是"完美"的解决方案,因为在我的第二个控制器中.cs我也需要这种方法。
如果你的实现与每个控制器不同,那么你可以有一个抽象类,如下所示。
public abstract class SVG
{
public abstract string GetSVG(string path);
}
public class MyController : SVG
{
public override string GetSVG(string path)
{
// your implementation
}
}
否则,请使用静态类并从任何控制器调用 GetSVG 方法。
通常,
当功能对特定视图关闭时,会使用@functions。如果它是一个共享函数,那么任何类中的静态函数或 html 助手都会做得更好。