如何在视图中显示 return HTTP BadResponse 消息?
How to return HTTP BadResponse message in the View?
我在将 BadRequest
消息从我的 Web API 发送到我的视图时遇到问题。 API 方法可以是 return 对象,一个简单的 BadRequest
或带有消息 "Could not match" 的对象。
问题是当 API 方法 return 变成 BadRequest
时,我不知道 return 的内容和方法。就像现在一样,Web 应用程序控制器只有 returns 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");
}
}
The name HttpStatusCodeResult does not exist in current context
下面是我的WEBAPITitleController.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
方法中应该 return 什么?即使 HttpStatusCodeResult
,我仍然觉得我也错过了其他代码。
这行的内容:
伪代码
if (response.Status == HttpStatusCode.Ok)
return Redirect(...);
else
return BadRequest(response.Content.ReadAsStringAsync().Result);
我在将 BadRequest
消息从我的 Web API 发送到我的视图时遇到问题。 API 方法可以是 return 对象,一个简单的 BadRequest
或带有消息 "Could not match" 的对象。
问题是当 API 方法 return 变成 BadRequest
时,我不知道 return 的内容和方法。就像现在一样,Web 应用程序控制器只有 returns 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");
}
}
The name HttpStatusCodeResult does not exist in current context
下面是我的WEBAPITitleController.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
方法中应该 return 什么?即使 HttpStatusCodeResult
,我仍然觉得我也错过了其他代码。
这行的内容:
伪代码
if (response.Status == HttpStatusCode.Ok)
return Redirect(...);
else
return BadRequest(response.Content.ReadAsStringAsync().Result);