2014-12-10 61 views
0

我試圖找出使用Web API的.NET 4.0如何使用MVC的WebAPI 4

我不能使用IHttpResult因爲這就是一部分返回一個空結果的正確方法返回一個空結果爲的WebAPI .NET 4.5

Ok(ResultType.NoResult); 

是我以前使用的功能,但現在我有這個塊返回我的模型,而不是一個IHttpResult的。什麼是返回空結果的正確方法?

public Models.Login Post(Models.LoginInfo loginInfo) 
     { 
      if(!ModelState.IsValid) 
      { 
       //throw new HttpResponseException("Failed"); 
      } 
      //Fake Sql Stuff happened here. Dont question it. 
      try 
      { 
       SqlConnection conn = new SqlConnection(); 
       conn.ConnectionString = @"fakeconnectionstring"; 

       conn.Open(); 

       SqlCommand cmd = new SqlCommand("LoginQuery", conn); 
       cmd.CommandType = CommandType.StoredProcedure; 
       cmd.Parameters.AddWithValue("@username", loginInfo.Username); 
       cmd.Parameters.AddWithValue("@password", loginInfo.Password); 


       SqlDataReader reader = cmd.ExecuteReader(); 
       Models.Login login = new Models.Login(); 
       // Call Read before accessing data. 
       while (reader.Read()) 
       { 
        login.id = (int)reader["id"]; 
        login.Username = reader["username"].ToString(); 
        login.Password = reader["password"].ToString(); 
        login.Firstname = reader["first_name"].ToString(); 
        login.Lastname = reader["last_name"].ToString(); 
       } 

       conn.Close(); 

       //return Ok(ResultType.NoResult); 
       //How to return empty result 

      } 
      catch 
      { 
       //throw new HttpResponseException(HttpStatusCode.NotFound); 
       //How Do I Throw an empty result 
      } 
    } 

回答

1

通常,null將意味着什麼:

{ 
... 
return null; 
} 
catch 
{ 
    return null; 
} 

一種編程注:並非異常處理(例如吞嚥例外)是應用程序的一個潛在的無聲的殺手。

+0

idk爲什麼我沒有想到返回null -.-它與noresult相同... – 2014-12-10 21:51:54

-1

最佳實踐表明,只有在更改數據/模型的狀態時才應使用POST。如果您希望在POST調用後返回一些數據,則可以通過重定向到另一個操作來使用「Post-Redirect-Get」模式。