我有两个网络API控制器:PageController
和BlogController
。它们包含用于创建页面和博客的简单方法。每次创建博客时,我都需要创建一个页面,但反之亦然。这是最好的方法吗?如果我继承PageController
中的BlogController
,我觉得我的路由会发生奇怪的事情。有没有办法从CreatePage
的{{1}}方法调用PageController
中的BlogController
方法?每次我想创建一个博客时,我是否应该单独辞职,再进行两次单独的ajax调用?
答案 0 :(得分:6)
如果您需要一些需要由多个控制器访问的通用逻辑,您应该创建一个单独的类来集中处理该通用逻辑。
此类可以是您的Web项目的一部分,也可以是单独的项目/程序集。
基本上你要做的是:
public class BlogController
{
public void CreateBlog()
{
var pc = new PageController();
pc.CreatePage();
}
}
public class PageController
{
private Database db;
public void CreatePage()
{
var page = new Page();
db.SavePage(page);
}
}
我建议你这样做:
public class BlogController
{
public void CreateBlog()
{
Blog.CreatePage();
}
}
public class PageController
{
public void CreatePage()
{
Blog.CreatePage();
}
}
public class Blog
{
private Database db;
public static void CreatePage() // does not
{
var page = new Page();
db.SavePage(page);
}
}
答案 1 :(得分:0)
尝试创建控制器的对象,然后使用相应的功能。