我试图找出使用.Net 4.0上的网络API返回空结果的正确方法
我无法使用IHttpResult,因为那是.net 4.5的WebApi的一部分
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
}
}
答案 0 :(得分:1)
通常null
无意义:
{
...
return null;
}
catch
{
return null;
}
编程说明:不处理异常(例如吞咽异常)是您申请的潜在无声杀手。
答案 1 :(得分:-1)
最佳实践表明只应在更改数据/模型的状态时使用POST。如果您希望在POST调用后返回一些数据,可以通过重定向到另一个操作来使用“重定向后获取”模式。