如何在视图中返回HTTP BadResponse消息?

问题描述 投票:0回答:1

我在从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,我仍然觉得我也错过了其他代码。

c# asp.net-core asp.net-web-api web-applications http-post
1个回答
0
投票

与此类似:

密码

if (response.Status == HttpStatusCode.Ok) 
    return Redirect(...); 
else 
    return BadRequest(response.Content.ReadAsStringAsync().Result);
© www.soinside.com 2019 - 2024. All rights reserved.