【发布时间】:2018-02-17 03:51:51
【问题描述】:
我的一个 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 检查客户端记录已存在的正确方法是什么?
【问题讨论】:
-
您的问题不清楚,因为底部的操作方法没有调用顶部的 Web API 方法。无论如何,应用程序不知道“项目”和“解决方案”。如果您有 2 个项目,则您有 2 个单独的应用程序,它们将像单独的应用程序一样运行。如果要共享行为,请将它们放入同一个项目或项目之间共享的类库中。
标签: asp.net .net rest asp.net-web-api