gpt4 book ai didi

asp.net-web-api - Web Api 2 空字符串参数 GET

转载 作者:行者123 更新时间:2023-12-04 12:20:16 25 4
gpt4 key购买 nike

我已将路线设置为:
[路线(“{id}/users/search/{search}”)]
和相关的行动是:
SomeAction(int id, 字符串文本)

该服务具有以下功能。
对于 id={id} 的资源,该资源的用户获取与 {search} 术语(用户名、电子邮件等)匹配的用户。

{search} 可以有一个值,因此服务仅返回匹配的实体或没有值(空字符串或 null),因此服务返回所有内容。

对于具有值的部分,它工作正常。
对于第二部分,我找不到设置与空字符串匹配的获取请求的内容。

我尝试了以下方法:
1/users/search/null {search} = "null"
1/users/search/不匹配路由
1/users/search 不匹配路由

有没有人提示如何做到这一点?

更新:我试图替换操作:
SomeAction(int id, 字符串文本)
和:
SomeAction(Model model) 其中模型是

public class ApplicationUserSearchModel
{
[Required]
public int Id { get; set; }
[Required(AllowEmptyStrings = true)]
public string MatchText { get; set; }
}

没有运气,因为我不知道要发送什么才能将 url 与此匹配。

最佳答案

您应该标记您的 search参数与 ?在路由中将其标记为可选,并将其设置为 null默认情况下在您的操作中。

[Route("{id}/users/search/{search?}")]
public HttpResponseMessage Search(int id, string search = null)

我最初认为路由/操作参数名称是问题所在,但我不正确。这是之前的回答:

您的路由定义中的参数名称与您的操作不匹配,这会导致您的问题。
[Route("{id}/users/search/{search}")]
public HttpResponseMessage Search(int id, string text)

您应该更新 string您的操作中的参数来自 textsearch , 匹配 Route 中的参数名称属性。

关于asp.net-web-api - Web Api 2 空字符串参数 GET,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28661919/

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