微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何将此路由从MVC控制器映射到Web API控制器?

如何解决如何将此路由从MVC控制器映射到Web API控制器?

我们有一个mvc项目,我们想转到Web api。该mvc项目没有任何UI,因此使用除Web api控制器以外的mvc控制器是一个错误

但是,我们的客户可以通过以下网址访问mvc控制器:

https://mysite.azurewebsites.net/indexes/unit/docs/search   (both httppost)
https://mysite.azurewebsites.net/indexes/unit/docs/post   (both httppost)
https://mysite.azurewebsites.net/indexes/unit/docs/get

单元/文档部分实际上是动态的(我们将其发送到数据库以进行某些查询)。

如果将此控制器移至Web api,我们如何处理路由,因为我们需要向后兼容?

解决方法

在您的WebApi控制器中,执行以下操作:

[route("{controller}")]
public IndexesController : ControllerBase
{
    [HttpPost("{unit}/{docs}/{search}")]//or whatever those variables should be
    public async Task<IactionResult> Search(string unit,string docs,string search) 
    {
        //Do your stuff
        var result = _logic.DoStuff();
        return Ok(result);
    }
}

虽然没有理由离开MVC控制器。只是总是返回JsonResult(),从调用者的角度来看,它的行为就像WebApi一样。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。