格式化Web API的响应

时间:2016-12-22 17:12:51

标签: c# asp.net-web-api

我有一个Web API运行存储过程并从表中返回记录。记录包含名为CounterSeq的int字段

[HttpGet]
public IHttpActionResult Get(string Account)
{
 // other code for connecting to the SQL seerver and calling the stored procedure
 reader = command.ExecuteReader(); 
 List<QueryResult>qresults = new List<QueryResult>();
   while (reader.Read())
   {
       QueryResult qr = new QueryResult();
       qr.AccountID = reader["AccountID"].ToString();
       qr.CounterSeq = reader["CounterSeq"].ToString();
       qresults.Add(qr);
   }
   DbConnection.Close();
   return Ok(qresults); 

响应中CounterSeq的格式应为001.如果我将其添加到

之下的语句中
  qr.CounterSeq ="00"+ reader["CounterSeq"].ToString();

但即使是两位数,它也显示为&#34; 0012&#34;但它需要是&#34; 012&#34;我该如何处理这个

3 个答案:

答案 0 :(得分:2)

试试这个:

qr.CounterSeq =reader["CounterSeq"].ToString("0000");

答案 1 :(得分:2)

您可以使用PadLeft

 qr.CounterSeq = reader["CounterSeq"].ToString().PadLeft(3, '0');
  

返回指定长度的新字符串,其中当前字符串的开头用空格或指定的Unicode字符填充。

答案 2 :(得分:0)

你可以试试这个:

qr.CounterSeq = reader.GetInt32(reader.GetOrdinal("CounterSeq")).ToString("D4");

这里是带有1个参数的ToString错误的答案: no overload for method "ToString" takes 1 arguments

您可以在此处阅读有关十进制(“D”)格式说明符的更多信息: https://msdn.microsoft.com/en-us/library/dwhawy9k(v=vs.110).aspx