用HTTPResponseMessage连接多个字符串

时间:2018-07-31 06:11:21

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

我有两个可变字符串。如何通过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的结果。 如果我只传递第一个示例中所示的一个变量,我将获得预期的输出。

2 个答案:

答案 0 :(得分:0)

masterInfo或masterDepartment都不是字符串,它是您要查询的实体的实例。如果要连接这些实体实例的成员,则可以执行以下操作。

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

答案 1 :(得分:0)

据我了解,

您要返回masterInfomasterDepartment并返回OK

然后尝试下面的代码

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 Type创建一个new意味着只创建一个新类型而不定义它们

您可以从here了解有关Anonymous Type的更多信息