从另一个访问一个web api控制器

时间:2014-04-22 03:49:13

标签: asp.net ajax web asp.net-web-api

我有两个网络API控制器:PageControllerBlogController。它们包含用于创建页面和博客的简单方法。每次创建博客时,我都需要创建一个页面,但反之亦然。这是最好的方法吗?如果我继承PageController中的BlogController,我觉得我的路由会发生奇怪的事情。有没有办法从CreatePage的{​​{1}}方法调用PageController中的BlogController方法?每次我想创建一个博客时,我是否应该单独辞职,再进行两次单独的ajax调用?

2 个答案:

答案 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)

尝试创建控制器的对象,然后使用相应的功能。