Web API 2 DataMember命名在FromUri参数中不起作用

时间:2017-01-12 12:23:28

标签: c# asp.net-web-api2

我在UriParameters中遇到DataMember命名问题。

#include <type_traits>
#include <functional>
#include <utility>

template<typename F> F * get(std::function<F>);
template<typename F> using MyType = typename std::remove_pointer<decltype(get(std::declval<F>()))>::type;

double f(int, long) { return {}; }

int main() {
    using FooType = std::function<double(int, long)>;
    MyType<FooType> *myF = f;
    (void)myF;
}

然后我有我的控制器:

[DataContract]
public class testobj 
{

[DataMember(Name = "Test")]
public string a {get; set; }

[DataMember(Name = "Test1")]
public string b {get; set; }

}

在我得到public IHttpActionResult test([FromUri] testobj testparams) { return testparams; } Test的回复中,这是正确的。但是我必须在uriParameters中使用Test1a,为什么我不能在那里使用Test和Test1?

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

您无法在查询字符串中传递对象类型,您必须在HTTP数据包正文中传递它,并在Controller方法参数中使用[FromBody]。

这是一个Stackoverflow链接,解释更多, ASP.NET Web APi - Passing an object as parameter

谢谢你, Bhadhri