【发布时间】:2014-06-14 03:09:41
【问题描述】:
我几乎没有从同一个基类继承的控制器。在它们彼此不共享的不同动作中,它们确实有一些完全相同。我希望将这些放在我的基类中,因为它们的工作方式完全相同,只是它们是通过不同的路线访问的。
我应该如何用几个不同的路由来定义这些动作?
我的继承类也设置了RoutePrefixAttribute,因此它们每个都指向不同的路线。
示例
我有一个名为Vehicle 的基本抽象类,然后继承了Car、Bike、Bus 等。它们都有共同的操作Move()
/bus/move
/car/move
/bike/move
如何在我的基类 Vehicle 上定义操作 Move() 以便在每个子类路由上执行?
【问题讨论】:
-
您是否尝试过创建一个继承自 APIController 的基类,然后您的控制器继承自基类。在这种情况下,我认为不同的路线不会有什么不同。
-
还有什么?
vehicle/move所有人? -
您是否打算覆盖子类中的
Move()? -
@Nkosi:不,它们将在基类上定义,并且只在基类上定义,但应该在子类的不同路径下执行......可能在某些特殊情况下我会覆盖那些,但很少这样做。无论如何,覆盖都会定义新路线,所以这应该不是问题。
-
那么在这种情况下检查我在下面发布的答案
标签: c# asp.net inheritance asp.net-web-api2 asp.net-web-api-routing