Ufu*_*arı 6 routing servicestack
我试图找到一种方法来获取此查询字符串中的值到我的DTO对象.
example.org?code=abc
Run Code Online (Sandbox Code Playgroud)
我必须将代码值映射到AuthorizationCode属性(参数名称也不匹配).我试过像这样的路由,但它不起作用.
[Route("?code={AuthorizationCode}", "GET")]
public class Registration
{
public string AuthorizationCode { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
由于这是一个回调网址,我没有机会更改它.我怎么能做到这一点?
myt*_*thz 11
在ServiceStack的路由上阅读此前面的答案.路由应该只包含/path/info它们永远不应该包含的queryString,它们可以自动填充所有请求DTO.
如果您在DTO中只有一个代码属性,例如:
[Route("/registration", "GET")]
public class Registration
{
public string Code { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
你可以已经与填充它:/registration?code=abc.
否则,如果您想坚持使用queryString和DTO的不同名称,可以尝试通过将DTO注释为以下内容来创建别名[DataContract]:
[Route("/registration", "GET")]
[DataContract]
public class Registration
{
[DataMember(Name="code")]
public string AuthorizationCode { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
无论哪种方式,您始终可以直接在您的服务或过滤器中访问QueryString:
public MyService : Service
{
public object Post(Registration request)
{
var code = base.Request.QueryString["code"];
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4083 次 |
| 最近记录: |