Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/14.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
C# 从另一个MVC项目重写API控制器_C#_Asp.net Mvc - Fatal编程技术网

C# 从另一个MVC项目重写API控制器

C# 从另一个MVC项目重写API控制器,c#,asp.net-mvc,C#,Asp.net Mvc,我有一个产品核心MVC项目。这个项目有一些常见的API控制器 我还有一个MVC项目“Product”,它引用了Product.Core API控制器按预期工作。我可以调用两种解决方案中定义的API 现在我想扩展Product.Core中的一个API控制器。比如说XXXApiController 我在产品项目中定义了相同的控制器 namespace Product { public class XXXApiController : Product.Core.XXXA

我有一个产品核心MVC项目。这个项目有一些常见的API控制器

我还有一个MVC项目“Product”,它引用了Product.Core

API控制器按预期工作。我可以调用两种解决方案中定义的API

现在我想扩展Product.Core中的一个API控制器。比如说XXXApiController

我在产品项目中定义了相同的控制器

    namespace Product
    {
        public class XXXApiController : Product.Core.XXXApiController
        {
            public new Task<XXXResponse> MyApiAsync()
            {
                var response = await base.MyApiAsync();
                // do extra code here
                return response;
            }
        }
    }
名称空间产品
{
公共类XXXAP控制器:Product.Core.XXXAP控制器
{
公共新任务MyApiAsync()
{
var response=await base.myapisync();
//在这里做额外的代码
返回响应;
}
}
}
但是,在进行此更改之后,似乎XXXApiController不再可用。我收到“未找到HTTP资源”错误


如何扩展另一个MVC项目中的API控制器?

使用单独的程序集扩展c#代码我的问题更多的是路由问题,我已经扩展了APIController,项目构建和部署。但是,如果您使用的是基于约定的路由控制器名称,则扩展的APIController的路由将被破坏,其差异不应仅限于名称空间。我不是说这是这里的问题,但值得一提的是,我使用的是基于约定的路由。你是说我用不同的名称来调用新的控制器,但要添加路由前缀,以便此继承对连接到此web服务的客户端是透明的吗?我还没试过这个。