在asp mvc中使用静态方法在不同情况下使用它
本文关键字:情况下 静态方法 mvc asp | 更新日期: 2023-09-27 18:34:56
如果我
使用它,我想khnow这个结构是否好,例如我想在不同的控制器(不是全部(中调用一个方法,我不想使用baseController
案例1
public class HomeController : Controller
{
public static image GetImage(string url){
// Get image (not from database)
}
}
和在用户科托罗尔
public ActionResult index(){
image img = HomeController.GetImage(//url of image);
}
案例2
使用静态方法创建类
public class ForImages
{
public static image GetImage(string url){
// Get image
}
和在用户科托罗尔
public ActionResult index(){
image img = ForImages.GetImage(//url of image);
}
编辑
我想知道静态方法是在每个请求中执行还是为所有请求共享
案例3
从视图中使用静态方法
@HomeController.GetImage(//url of image)
或
@ForImages.GetImage(//url of image)
如果您只想创建一个实用程序方法,并且它不依赖于您的控制器,那么您可以将其放在实用程序类中:
public static class Utilities
{
public static image GetImage(string url)
{
// return image
}
}
然后,您可以从任何控制器调用它,无论它们的基类是什么:
public ActionResult index()
{
image img = Utilities.GetImage(//url of image);
}
请注意,通常不应从视图样板访问控制器。控制器应将数据传递到视图,并且应该是从控制器到视图的单向信息流。