C# 在“重试捕获”块中向用户显示net core web app中的错误

C# 在“重试捕获”块中向用户显示net core web app中的错误,c#,asp.net-core,asp.net-core-webapi,asp.net-core-3.1,C#,Asp.net Core,Asp.net Core Webapi,Asp.net Core 3.1,我有一个控制器,通过API将新游戏发布到服务器 这部分工作正常,但由于某些原因,我的电子邮件失败了,我想向用户显示错误 所以我试着做出回应。在我的catch语句中写下,如下所示 但它找不到“Response.Write”或“Server”的定义 我将如何添加这些 谢谢 [HttpPost] public async Task<ActionResult> ProcessGameForm([FromBody] MakeGame game) {

我有一个控制器,通过API将新游戏发布到服务器

这部分工作正常,但由于某些原因,我的电子邮件失败了,我想向用户显示错误

所以我试着做出回应。在我的catch语句中写下,如下所示

但它找不到“Response.Write”或“Server”的定义

我将如何添加这些

谢谢

   [HttpPost]
    public async Task<ActionResult> ProcessGameForm([FromBody] MakeGame game)
    {         

        ' xx post form code 

       ' now send email alert
       try
        {
            SendMyEmail(game.Title);

        }
        catch (Exception ex)
        {
            Response.Write("<script>alert('" + Server.HtmlEncode(ex.ToString()) + "')</script>");
        }

        return Ok();
    }
[HttpPost]
公共异步任务ProcessGameForm([FromBody]MakeGame)
{         
'xx邮政表格代码
'现在发送电子邮件警报
尝试
{
sendmail(游戏名称);
}
捕获(例外情况除外)
{
Write(“警报(“”+Server.HtmlEncode(例如ToString())+”)”;
}
返回Ok();
}

本着本网站的精神,并希望您纯粹为了调试而使用该代码,我将回答如何准确地使您正在尝试的工作正常运行,但是。。。该代码有很多错误

在.NETCore中,上下文
响应
服务器
对象中没有更多对象

相反,您必须执行以下操作:

await HttpResponseWritingExtensions.WriteAsync(this.Response, "<script>alert('" + HttpUtility.HtmlEncode(ex.ToString()) + "')</script>");
wait-HttpResponseWritingExtensions.WriteAsync(this.Response,“警报”(“+HttpUtility.HtmlEncode(例如ToString())+”)”);
此外,我认为一种更简单(也更正确)的方法是:

return Content("<script>alert('" + HttpUtility.HtmlEncode(ex.ToString()) + "');
返回内容(“警报('”+HttpUtility.HtmlEncode(例如ToString())+”);
我还没有测试上述任何一个,但它应该工作


但是,您确实应该有一个正确的错误页面(包括内部使用),该页面将接受一个
异常
对象作为模型,然后使用Razor语法以您想要的方式呈现该对象。

谢谢,我感谢您的诚实。:)然而,Visual Studio不喜欢HtmlEncode说“方法“HtmlEncode”没有重载,该方法接受0个参数“@SkyeBoniwell Edited!