我的ProductsController
:
public IHttpActionResult GetProduct(string id)
{
var product = products.FirstOrDefault((p) => p.Id == id);
return Ok(product);
}
当我使用此网址发送GET请求时:
api/products?id=
它将id
视为null。如何将其视为空字符串?
答案 0 :(得分:7)
此
public IHttpActionResult GetProduct(string id = "")
{
var product = products.FirstOrDefault((p) => p.Id == id);
return Ok(product);
}
或者这个:
public IHttpActionResult GetProduct(string id)
{
var product = products.FirstOrDefault((p) => p.Id == id ?? "");
return Ok(product);
}
答案 1 :(得分:2)
我遇到一种情况,我需要区分没有传递参数(在这种情况下,将默认值分配为null)和显式传递空字符串。我使用了以下解决方案(.Net Core 2.2):
[HttpGet()]
public string GetMethod(string code = null) {
if (Request.Query.ContainsKey(nameof(code)) && code == null)
code = string.Empty;
// ....
}