基类:
public class DataApiControllerBase<T> : ApiController
{
public List<ValidationResult> Validate(T input)
{
...
}
}
派生类:
public class CustomerController: DataApiControllerBase<Customer>
{
[Route("api/customer/{id}")]
public Customer Get([FromUri] Guid id)
{
}
}
路由解析到什么,所以我在每个派生的控制器端点上得到一个"验证"端点?这是正确的做法吗?
我认为你可以使用方法重写来解决这个问题
基类public class DataApiControllerBase<T> : ApiController
{
public virtual List<ValidationResult> Validate(T input)
{
...
}
}
派生类
public class CustomerController: DataApiControllerBase<Customer>
{
Route("api/customer/validate")]
[HttpPost]
public override List<ValidationResult> Validate(Customer input)
{
base.Validate(input);
}
Route("api/customer/{id}")]
public Customer Get([FromUri] Guid id)
{
}
}