Я получаю:
Невозможно привести объект типа 'System. Net .HttpResponseMessage к типу' System.Web.Http.IHttpActionResult
Метод контроллера web api2 вызывает уровень доступа к данным, который возвращает int. Сбой при приведении:
return (IHttpActionResult)httpResponse;
Код:
[HttpGet]
[Route("registeruser/{currentDateTime}/{userName}/{userPassword}/{ipAddress}/")]
public IHttpActionResult RegisterUser(DateTime currentDateTime, string userName, string userPassword, string ipAddress)
{
try
{
HttpResponseMessage httpResponse;
int returnValue = 0;
returnValue = dataaccesslayer.RegisterUser(currentDateTime, userName, userPassword, ipAddress);
httpResponse = Request.CreateResponse(HttpStatusCode.OK, returnValue);
return (IHttpActionResult)httpResponse;
}
catch (Exception)
{
throw;
}
}
Уровень доступа к данным, вызываемый методом контроллера web api2 - он возвращает int:
public int RegisterUser(DateTime currentDateTime, string userName, string userPassword, string ipAddress)
{
int returnedValue = 0;
try
{
dbFunc.OpenDB();
SqlCommand cmd = new SqlCommand("dbo.RegisterUser", dbFunc.objConn);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Clear();
cmd.Parameters.AddWithValue("@a_CurrentDateTime", currentDateTime);
cmd.Parameters.AddWithValue("@a_UserName", userName);
cmd.Parameters.AddWithValue("@a_UserPassword", userPassword);
cmd.Parameters.AddWithValue("@a_IpAddress", ipAddress);
cmd.Parameters.Add("@a_UserIdOut", SqlDbType.Int);
cmd.Parameters["@a_UserIdOut"].Direction = ParameterDirection.Output;
cmd.ExecuteNonQuery();
returnedValue = (int)cmd.Parameters["@a_UserIdOut"].Value;
return returnedValue;
}
catch (SqlException sqlex)
{
throw sqlex;
}
catch (Exception ex)
{
throw ex;
}
finally
{
// Close the database.
dbFunc.CloseDB();
}
}