Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/asp.net-mvc-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 在ASP.NET MVC中的区域之间共享相同的控制器代码_Asp.net Mvc_Asp.net Mvc 3_Dry - Fatal编程技术网

Asp.net mvc 在ASP.NET MVC中的区域之间共享相同的控制器代码

Asp.net mvc 在ASP.NET MVC中的区域之间共享相同的控制器代码,asp.net-mvc,asp.net-mvc-3,dry,Asp.net Mvc,Asp.net Mvc 3,Dry,在我的项目中,我在两个不同的区域中有两个相同的控制器 两者之间的唯一区别是基本控制器 浏览会话控制器:区域1BaseController 浏览会话控制器:区域2BaseController 控制器本身非常丰富,根据条件返回视图或重定向到操作 我不想在术语上重复我自己,我希望坚持DRY原则,并想知道如何维护控制器结构,但避免重复代码 方法样本 浏览SessionController内容 在控制器之间使用组合而不是继承来共享逻辑通常更好 您可以使用静态实用程序类来封装公共逻辑,并从控制器代码中调用它

在我的项目中,我在两个不同的区域中有两个相同的控制器

两者之间的唯一区别是基本控制器

  • 浏览会话控制器:区域1BaseController
  • 浏览会话控制器:区域2BaseController
  • 控制器本身非常丰富,根据条件返回
    视图
    重定向到操作

    我不想在术语上重复我自己,我希望坚持DRY原则,并想知道如何维护控制器结构,但避免重复代码

    方法样本

    浏览SessionController内容


    在控制器之间使用组合而不是继承来共享逻辑通常更好

    您可以使用静态实用程序类来封装公共逻辑,并从控制器代码中调用它


    该逻辑将存在于基本区域中。

    在控制器之间共享逻辑时,通常最好使用组合而不是继承

    您可以使用静态实用程序类来封装公共逻辑,并从控制器代码中调用它

    这种逻辑将存在于根据地

    ...
    case ("byexpiry"): // Expiry Grid
    
        currentTemplateModel._TemplateExpiry =
            _browsingSessionTemplateRepository.GetBrowsingSessionLeadExpiryTemplateById(currentTemplateModel.Id);
        return View("SessionExpiryGrid",
                    new SessionExpiryGridModel()
                    {
                        ActiveBrowsingSessionTemplate = currentTemplateModel,
                        SessionGuid = guid
                    });
    ...