我的一个ASP.NET Web API项目有这样的代码:
public HttpResponseMessage GetStatusById(int sid)
{
try
{
var mds = TheRepository.GetStatusById(sid);
if (mds != null)
{
return Request.CreateResponse(HttpStatusCode.OK, TheModelFactory.Create(mds));
}
else
{
return Request.CreateResponse(HttpStatusCode.NotFound);
}
}
catch (Exception ex)
{
return Request.CreateResponse(HttpStatusCode.BadRequest, ex);
}
}
在同一个解决方案中,但在我编写客户端(ASP.Net网站)的另一个项目中,它将通过此WebAPI读取和写入数据。
首先,客户端应检查数据库中是否已存在记录:
public async Task<ActionResult> Create([Bind(Include = "id,description")] MDS mds)
{
if (mds == null)
{
return new HttpStatusCodeResult(HttpStatusCode.BadRequest, "No data given to server");
}
else
{
MDS reqMds = await _mdApiService.GetMDS ByStatus(Convert.ToInt32(mds.Id));
if (reqMds == null )
{
await _mdApiService.CreateMDS(mds);
}
else
{
return new HttpStatusCodeResult(HttpStatusCode.Conflict, "Already exists");
}
}
return View("Details", mds);
}
当我调用此方法时,我在浏览器中获取NotFound-Page而不是获取响应客户端(网站)并解析它。 目标是显示来自WebSite Project的错误,而不是来自Web API项目。
通过Web API检查客户端已存在的记录的正确方法是什么?
答案 0 :(得分:0)
我决定编辑我的服务器Web API以检查重复条目。在客户端上仅将操作从用户传输到API。