首页 > 解决方案 > 使用 HTTPResponseMessage 连接多个字符串

问题描述

我有两个变量字符串。如何使用我的 HTTPResponseMessage 传递两个字符串的结果

var masterInfo = entities.Empmaster.Where(e => e.EmployeeId == EmployeeID)
                                          .FirstOrDefault();

string masterDepartment = entities.Departments.Where(d = DepartmentID = 
                                                  MasterInfo.DepartmentId)
                                                  .select(d => d.Name)
                                                  .FirstOrDefault();

if (masterInfo == null)
{
   return Request.CreateErrorResponse(HttpStatusCode.NotFound, "No Info");
}
else
{
   return Request.CreateResponse(HttpStatusCode.OK, masterInfo);
}

每当我尝试将 masterDepartment 与 masterInfo 连接时

return Request.CreateResponse(HttpStatusCode.OK, masterInfo + 
masterDepartment);

我没有收到任何错误,但有一个输出说明 System.Data.Entity.DynamicProxies.EmpMaster_260ECB16225F4E5E0232BA72326492E9BADA61D68BE4DCEF48D365296F69975F 人力资源。虽然不知何故我得到了 masterDepartment 即人力资源的结果。但不是 masterInfo 的结果。如果我只传递一个变量,如第一个示例所示,我会得到预期的输出。

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

解决方案


据我了解,

您想同时返回masterInfo和响应masterDepartmentOK

然后试试下面的代码

if (masterInfo == null)
{
    return Request.CreateErrorResponse(HttpStatusCode.NotFound, "No Info");
}
else
{
    return Request.CreateResponse(HttpStatusCode.OK, new { MasterInfo = masterInfo, MasterDepartment = masterDepartment });

    //OR

    //return Request.CreateResponse(HttpStatusCode.OK, new { masterInfo, masterDepartment });
}

试一次可能对你有帮助

编辑:

在这里,我们创建一个Anonymous Typewith 关键字new意味着只需创建新类型而不定义它们

Anonymous Type您可以从这里了解更多信息


推荐阅读