繁体   English   中英

如何将类型的对象作为参数传递给Web Api Get / Post方法

[英]How to pass an object of type as a parameter to Web Api Get/Post method

这是我的Post方法,我正在传递包含参数的对象

public class TransactionController : ApiController
{
 [HttpPost]
    public TransactionResponse mytest2(TransactionOperationInput input)
    {
       // some operation here 
    }
}

这是我要测试的网址

http://localhost:33755/api/Transaction/mytest2?SourceKey=abcdef&Pin=123&Criteria=2018-09-12 00:00:00

方法设置为POST和Get时的结果

[HttpPost]:我收到不允许的错误405方法。

[HttpGet]:输入参数为NULL

这是注册路由类; (对不起,我是Route表的新手)

public static void RegisterRoutes(RouteCollection routes)
    {
        routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

        routes.MapRoute(
            name: "Default",
            url: "{controller}/{action}/{id}",
            defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
        );
    }

我需要更新路由表吗? 或我的URL错误吗?

另外,我应该将服务方法设为“邮寄”还是“获取”?

您无法导航到[HttpPost]方法,因此它必须是[HttpGet] 要从查询字符串值绑定到复杂对象,您需要使用[FromUri]属性

[HttpGet] // can be omitted 
public TransactionResponse mytest2([FromUri]TransactionOperationInput input)

有关web-api中的参数绑定的更多信息,请参阅ASP.NET Web API中的参数绑定

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM