如何将 WebApi 路径参数推送到请求正文的类中,无论是否可能



我试图简化我的应用程序的路由。我试图找到改变这一点的方法:

[Route("api/campaign/{campaignId}/launch")]
public HttpResponseMessage LaunchCampaign(long campaignId, CampaignLaunchRequest request)
{
    //do job
}

像这样:

[Route("api/campaign/{request.Id}/launch")]
public HttpResponseMessage LaunchCampaign(CampaignLaunchRequest request)
{
    //do job
}

我可以以某种方式将路径变量推送到某个类的请求正文中吗?

[Route("api/campaign/{request.Id}/launch")]

"请求"是类CampaignLaunchRequestid是此类的字段/属性

甚至可能吗?

我有一个类似的用例,并且能够通过使用自定义模型绑定器"ModelBinder"属性类来实现这一点。

例如,在您的情况下:

[Route("api/campaign/{campaignId}/launch")]
public HttpResponseMessage LaunchCampaign([ModelBinder(typeof(MyCustomModelBinder))]
CampaignLaunchRequest request)
{
    //do job
}

要创建ModelBinder,您可以查看此页面,但基本上您将解析请求并在"MyCustomModelBinder"中创建自己的"CampaignLaunchRequest"对象,该对象将在每次调用方法时运行。

相关内容

最新更新