我在从Web API返回BadRequest
消息到View时遇到问题。 API方法可以返回对象,简单的BadRequest
或带有消息“ Conot not match”的对象。
问题是,当API方法返回BadRequest
时,我不知道返回什么以及如何返回。现在,Web Aplication控制器仅返回View()
。我最终更改了它,但收到如下错误:
[HttpPost]
public ActionResult Create(GtlTitle gtlTitle)
{
try
{
HttpResponseMessage response = GlobalVariables_Title.client.PostAsJsonAsync("", gtlTitle).Result;
TempData["Success"] = "Added Successfully!";
return RedirectToAction("Index");
}
catch
{
return HttpStatusCodeResult(HttpStatusCode.BadRequest, "naughty");
}
}
名称HttpStatusCodeResult在当前上下文中不存在
下面是我的WEB API TitleController.cs
[Route("api/title")]
[HttpPost()]
public IActionResult InsertTitle([FromBody] GtlTitle gtlTitle)
{
// if (_titleChecker.CheckTitle(gtlTitle.ISBN) is false)
//{
string pattern = "[0-9]*[-| ][0-9]*[-| ][0-9]*[-| ][0-9]*";
Match m = Regex.Match(gtlTitle.ISBN, pattern, RegexOptions.IgnoreCase);
if (m.Success)
{
if (_titleChecker.CheckTitle(gtlTitle.ISBN) is false)
{
try
{
return Ok(_gtlTitleRepository.InsertTitle(gtlTitle));
}
catch (Exception e)
{
return BadRequest();
}
}
else
{
try
{
return Ok(_volumesDBContext.InsertVolume_FromTitle(gtlTitle, gtlTitle.ISBN));
}
catch (Exception e)
{
return BadRequest();
}
}
}
else
return BadRequest("Could not match");
// }
// else
//return Ok(_volumesDBContext.InsertVolume_FromTitle(gtlTitle, gtlTitle.ISBN));
}
因此,我应该在HttpPost
方法中返回什么?即使HttpStatusCodeResult
,我仍然觉得我也错过了其他代码。
与此类似:
密码
if (response.Status == HttpStatusCode.Ok)
return Redirect(...);
else
return BadRequest(response.Content.ReadAsStringAsync().Result);