ASP.NET Core Web API如何构建URL?

我有以下代码:


[Produces("application/json")]

[Route("api/[controller]")]

public class MarketReportInstancesTableController : BaseController

{

    internal readonly MyIRIntegrationDbContext Context;


    public MarketReportInstancesTableController(ILogger<MarketReportInstancesTableController> logger,

        MyIRIntegrationDbContext context) : base(logger)

    {

        Context = context;

    }


    [HttpGet (Name ="PageData")]

    public IActionResult PageData([FromQuery] IDataTablesRequest request)

    {

    .... methd body in here

    }

我尝试使用如下网址进行访问:


http://somehost/pca/api/MarketReportInstancesTable/pagedata

哪个不起作用,但是


http://somehost/pca/api/MarketReportInstancesTable/

确实有效。


我的问题是,为什么这条路线会这样做?我想在同一个WebAPI控制器中有很多路径。


我的处理方式有误吗?


LEATH
浏览 279回答 1
1回答

慕娘9325324

您的路线中没有路线模板。您只有一个路线名称路由名称可用于根据特定路由生成URL。路由名称对路由的URL匹配行为没有影响,仅用于URL生成。路由名称在应用程序范围内必须是唯一的。重点矿//GET api/MarketReportInstancesTable/pagedata[HttpGet ("pagedata", Name ="PageData")]public IActionResult PageData([FromQuery] IDataTablesRequest request) {&nbsp; &nbsp; //.... methd body in here}使用[HttpGet]未经路由模板是相同的[HttpGet("")],这将映射到与路由前缀控制器的根。这说明了您的root调用有效的原因。
打开App,查看更多内容
随时随地看视频慕课网APP