gpt4 book ai didi

c# - 我可以在 UriTemplate 中使用对象吗?

转载 作者:太空狗 更新时间:2023-10-29 23:11:10 26 4
gpt4 key购买 nike

我尝试了以下代码:

 [OperationContract]
[WebInvoke(UriTemplate="/Users/Register/{user}")]
void Register(User user);

但是当我尝试运行它时,它告诉我 UriTemplate 必须只包含字符串。如果我需要将一个对象传递到我的方法,在这种情况下,将一个用户对象传递到我的 Register 方法,该怎么办。

如果我将 WebInvoke 属性更改为:

[WebInvoke(UriTemplate="/Users/Register/")]

当我尝试浏览到 http://localhost:8000/Users/Register 时,浏览器显示错误 Method not allow例如

最佳答案

您仅限于 UriTemplate 中的字符串。您可以使用多个参数来传递多个字符串,但不能使用复杂类型。如果你想传递一个复杂类型,那么它不能在 URI 中的任何地方,而是在 POST/PUT 请求的主体中。 GET 请求不采用消息正文。所以你上面的代码可以改成这样:

[OperationContract]
[WebInvoke(Method = "POST", UriTemplate="/Users/Register")]
void Register(User user);

在您传递用户对象的地方,不是通过 Uri,而是作为 POST 请求的一部分。

关于c# - 我可以在 UriTemplate 中使用对象吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3739428/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com