我正在研究ASP.Net Core 1.1 Web API。我有一个ServiceTypeCode控制器,如下所示;为什么不在我的ASP.Net Core 1.1控制器动作中运行
[Produces("application/json")]
[Route("api/[controller]")]
public class ServiceTypeCodeController : Controller
{
...
...
...
[HttpGet]
public IActionResult Get([FromQuery] string a_query)
{
try
{
if (string.IsNullOrEmpty(a_query))
{
OperationResult<List<ServiceTypeCode>, string> result = m_bl.GetAllServiceTypeCodes();
if (result.Success && result.Result.Count > 0)
{
return Ok(JsonConvert.SerializeObject(result.Result));
}
} else
{
// Deserialize query into dictionary of strings and StringValues
var query = QueryHelpers.ParseQuery(a_query.ToLower());
if (query.TryGetValue("mailclasscode", out var mailClassCode))
{
if (!string.IsNullOrEmpty(mailClassCode))
{
OperationResult<List<ServiceTypeCode>, string> result = m_bl.GetAllServiceTypeCodes(mailClassCode);
if (result.Success && result.Result.Count > 0)
{
return Ok(JsonConvert.SerializeObject(result.Result));
}
}
}
if (query.TryGetValue("stc", out var stc))
{
if (!string.IsNullOrEmpty(stc))
{
OperationResult<ServiceTypeCode, string> result = m_bl.GetServiceTypeCode(stc);
if (result.Success)
{
return Ok(JsonConvert.SerializeObject(result.Result));
}
}
}
}
return NotFound();
}
catch (Exception ex)
{
string msg = "An exception occurred while trying to get a list of ServiceTypeCodes from the database.";
m_logger.LogError(1, ex, msg);
ApiError error = BuildError("Server Error - Exception", "500", "Get", ex, msg);
return Ok(JsonConvert.SerializeObject(error));
}
}
如果我使用的网址...
http://localhost:5000/api/servicetypecodes
与GET动词邮递员,我得到的服务类型代码列表,符合市场预期。但是,如果我尝试在
if (string.IsNullOrEmpty(a_query))
位置添加任何东西作为查询字符串,如...
http://localhost:5000/api/servicetypecodes?mailclasscode=fc
,并在我的代码中设置断点,a_query的值是零,而不是的预期“mailclasscode = fc”
我在这里错过了什么?
在此先感谢您的帮助。
字符串变量它期待必须的名称和你发送的一样:a_query - > mailclasscode – Terrance00
Terrance - OK,那么如果我想让用户使用http:// localhost:5000/api/servicetypecodes?mailclasscode = fc或http:// localhost: 5000/api/servicetypecodes?stc = 123,这取决于它们是否通过mailclasscode或stc过滤,那么我需要有 public IActionResult Get([FromQuery] string mailclasscode,[FromQuery string stc) 是否正确? – EiEiGuy
工作。谢谢Terrance。如果你想发布一个答案,我很乐意将其标记为正确的,以便你获得信任。 – EiEiGuy