【发布时间】:2013-06-27 17:55:46
【问题描述】:
我有一个关于 Web Api 基础知识的基本问题。仅供参考,我之前检查过,但找不到我要找的东西。
我有一段代码,如下所述。就像一般意义上的任何其他方法一样,我的方法称为:Post,它必须返回一些东西,例如 JSON,我该怎么做。 具体来说,为了将 3 个字段( loginRequest.Username、loginRequest.Password、loginRequest.ContractItemId )作为 Json,我应该在“return”这个词之后写什么。 评论:不用担心用户名、密码和合同 ID 在 cmets 中,我确实在我的 LinQ 中获得了它们的值。这只是我现在想要的回报,向所有想就此写下笔记的人问好。
[System.Web.Http.HttpPost]
public HttpResponseMessage Post(LoginModel loginRequest)
{
//loginRequest.Username = "staw_60";
//loginRequest.Password = "john31";
//loginRequest.ContractItemId = 2443;
try
{
Membership member =
(from m in db.Memberships
where
m.LoginID == loginRequest.Username
&& m.Password == loginRequest.Password
&& m.ContractItemID == loginRequest.ContractItemId
select m).SingleOrDefault();
}
catch (Exception e)
{
throw new Exception(e.Message);
}
return ???;
}
【问题讨论】:
-
OT:
catch (Exception e) { throw new Exception(e.Message); }是一个可怕的想法。祝你好运在没有合理的异常类型或堆栈跟踪的情况下跟踪任何错误! -
@Adriano 这不是 MVC 这是Web-API 所以有点不同。
-
@RichardDeeming 我还要包括在这种情况下正确的错误处理是
catch (Exception e) { throw; }。我会想象代码在那里用于断点调试,但仍然可以抛出断点并具有debuggablility。 -
@ErikPhilips:我可以看出调试代码的意义,但在生产代码中我倾向于完全省略
try...catch。 -
@RichardDeeming 或至少实际做一些有用的事情,例如记录并发送回
HttpResponseMessage和 500 或其他东西。
标签: c# json asp.net-web-api