C# 从另一个MVC项目重写API控制器
我有一个产品核心MVC项目。这个项目有一些常见的API控制器 我还有一个MVC项目“Product”,它引用了Product.Core API控制器按预期工作。我可以调用两种解决方案中定义的API 现在我想扩展Product.Core中的一个API控制器。比如说XXXApiController 我在产品项目中定义了相同的控制器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
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服务的客户端是透明的吗?我还没试过这个。