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

Rob*_*opp 3 asp.net ajax web asp.net-web-api

我有两个web api控制器:PageControllerBlogController.它们包含用于创建页面和博客的简单方法.每次创建博客时,我都需要创建一个页面,但反之亦然.这是最好的方法吗?感觉好像很奇怪,如果我继承我的路由必须发生PageControllerBlogController.有没有一些方法来调用CreatePage的方法PageControllerBlogControllerCreateBlog方法是什么?每次我想创建一个博客时,我是否应该单独辞职,再进行两次单独的ajax调用?

Bro*_*cco 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);
    }
}
Run Code Online (Sandbox Code Playgroud)

我建议你这样做:

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);
    }
}
Run Code Online (Sandbox Code Playgroud)