我在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中使用Test1
和a
,为什么我不能在那里使用Test和Test1?
我该如何解决这个问题?
答案 0 :(得分:0)
您无法在查询字符串中传递对象类型,您必须在HTTP数据包正文中传递它,并在Controller方法参数中使用[FromBody]。
这是一个Stackoverflow链接,解释更多, ASP.NET Web APi - Passing an object as parameter
谢谢你, Bhadhri