gpt4 book ai didi

c# - 如果未传递查询字符串,则带有 FromUri 的 Webapi 对象参数为 null

转载 作者:行者123 更新时间:2023-11-30 21:48:32 26 4
gpt4 key购买 nike

我有以下 API Controller 操作

[HttpGet]
[Route("assets")]
public async Task<HttpResponseMessage> Get([FromUri]SearchCriteria searchCriteria)
{

}

当我通过访问 url 使用 fiddler 测试它时

http://localhost/assets

searchCriteria 参数为 null 但当我尝试使用时

http://localhost/assets?param1=1&param2=2那么 searchCriteria 就得到了对象的实例。

SearchCriteria 类定义为

public class SearchCriteria
{
public SearchCriteria()
{
Param1 = "";
Param2 = "";
PageIndex = 0;
PageSize = 10;
}
public string Param1 { get; set; }
public string Param2 { get; set; }
public int PageIndex{ get; set; }
public int PageSize { get; set; }
}

我的方法有什么问题?为什么不传querystring时action参数为null?

谢谢

最佳答案

嗯...因为没有数据可以创建参数实例。

查看 URL。这里有用于创建参数的值:

http://localhost/assets?param1=1&param2=2

请注意如何为 param1param2 提供值,这些值直接映射到参数的类型:

public string Param1 { get; set; }
public string Param2 { get; set; }

但是在这个 URL 中,没有值:

http://localhost/assets

所以没有什么可以用来创建方法参数的实例。

null 字面意思是“这里什么都没有”。由于没有提供参数值,因此那里什么也没有。

关于c# - 如果未传递查询字符串,则带有 FromUri 的 Webapi 对象参数为 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37573195/

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