在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)

在asp mvc中使用静态方法在不同情况下使用它

如果您只想创建一个实用程序方法,并且它不依赖于您的控制器,那么您可以将其放在实用程序类中:

public static class Utilities
{
    public static image GetImage(string url)
    {
        // return image
    }
}

然后,您可以从任何控制器调用它,无论它们的基类是什么:

public ActionResult index()
{
    image img = Utilities.GetImage(//url of image);
}

请注意,通常不应从视图样板访问控制器。控制器应将数据传递到视图,并且应该是从控制器到视图的单向信息流。

相关文章: