从 Web api 控制器方法返回单个对象和字符串
Returning single object and string from web api controller method
我处于需要 return 单个对象和字符串的情况。我是网络新手 api 并且无法弄清楚如何return 多个参数..
下面是我到目前为止尝试过的代码..
public async Task<IHttpActionResult> PostAuthenticationData(long id, string password)
{
Consumer consumer = await db.Consumers.FindAsync(id);
if (consumer == null)
{
return NotFound();
}
if(consumer.ConsumerPassword != password)
{
return BadRequest();
}
ConsumerSessionTokenLog consumerSessionTokenLog = await db.ConsumerSessionTokenLogs.FindAsync(id);
if(consumerSessionTokenLog == null)
{
return NotFound();
}
else
{
string sessionToken = consumerSessionTokenLog.SessionToken;
}
/// here i need to return "sessionToken" and "consumer" object
return Ok(consumer);
}
任何人都可以帮助解决这个问题..
非常感谢
创建一个 class 来包装两个值,或者您可以 return 一个匿名类型,如下所示:
return Ok(new { consumer, sessionToken });
请注意,您需要将 sessionToken
提升到 if 语句范围之外。
只需定义一个结构到 return:
struct MyReturType
{
object obj;
string str;
public MyReturType(object o, string s)
{
obj = o;
str = s;
}
}
然后 return 那:
public async Task<IHttpActionResult> PostAuthenticationData(long id, string password)
{
Consumer consumer = await db.Consumers.FindAsync(id);
if (consumer == null)
{
return NotFound();
}
if(consumer.ConsumerPassword != password)
{
return BadRequest();
}
ConsumerSessionTokenLog consumerSessionTokenLog = await db.ConsumerSessionTokenLogs.FindAsync(id);
if(consumerSessionTokenLog == null)
{
return NotFound();
}
else
{
string sessionToken = consumerSessionTokenLog.SessionToken;
}
/// here i need to return "sessionToken" and "consumer" object
return Ok(new MyReturType(consumer,sessionToken));
}
我处于需要 return 单个对象和字符串的情况。我是网络新手 api 并且无法弄清楚如何return 多个参数..
下面是我到目前为止尝试过的代码..
public async Task<IHttpActionResult> PostAuthenticationData(long id, string password)
{
Consumer consumer = await db.Consumers.FindAsync(id);
if (consumer == null)
{
return NotFound();
}
if(consumer.ConsumerPassword != password)
{
return BadRequest();
}
ConsumerSessionTokenLog consumerSessionTokenLog = await db.ConsumerSessionTokenLogs.FindAsync(id);
if(consumerSessionTokenLog == null)
{
return NotFound();
}
else
{
string sessionToken = consumerSessionTokenLog.SessionToken;
}
/// here i need to return "sessionToken" and "consumer" object
return Ok(consumer);
}
任何人都可以帮助解决这个问题..
非常感谢
创建一个 class 来包装两个值,或者您可以 return 一个匿名类型,如下所示:
return Ok(new { consumer, sessionToken });
请注意,您需要将 sessionToken
提升到 if 语句范围之外。
只需定义一个结构到 return:
struct MyReturType
{
object obj;
string str;
public MyReturType(object o, string s)
{
obj = o;
str = s;
}
}
然后 return 那:
public async Task<IHttpActionResult> PostAuthenticationData(long id, string password)
{
Consumer consumer = await db.Consumers.FindAsync(id);
if (consumer == null)
{
return NotFound();
}
if(consumer.ConsumerPassword != password)
{
return BadRequest();
}
ConsumerSessionTokenLog consumerSessionTokenLog = await db.ConsumerSessionTokenLogs.FindAsync(id);
if(consumerSessionTokenLog == null)
{
return NotFound();
}
else
{
string sessionToken = consumerSessionTokenLog.SessionToken;
}
/// here i need to return "sessionToken" and "consumer" object
return Ok(new MyReturType(consumer,sessionToken));
}