提问人: 提问时间:5/16/2022 更新时间:5/17/2022 访问量:342
如何在C#中的json结果中返回错误消息?
How to return a error message in json result in C#?
问:
这是我的代码:
[HttpPost]
[Route("api/bulkUpload")]
[IgnoreAntiforgeryToken]
public JsonResult bulkUpload(IFormFile file)
{
List<Input> inputs = new List<Input>();
try
{
var extension = Path.GetExtension(file.FileName);
if (extension == ".csv")
{
.
.
.
}
}
catch(exception ex)
{
return json(new { errormessage ="invalid file extension"});
}
return jsonresult(inputs)
}
在 swagger api 中,如果我给出不同的文件(差异扩展名),如 .txt 或 .xls,它会给出错误代码:500。 但是我想返回一条错误消息作为无效的文件扩展名。请帮助此代码。
答:
0赞
Dan Csharpster
5/16/2022
#1
这可能有点取决于您使用的 ASP.NET 版本,但您应该能够执行以下操作:
[Microsoft.AspNetCore.Mvc.Route("api/[controller]")]
[ApiController]
public class ValuesController : ControllerBase
{
[Microsoft.AspNetCore.Mvc.HttpPost]
[Microsoft.AspNetCore.Mvc.Route("api/bulkUpload")]
[IgnoreAntiforgeryToken]
public IActionResult bulkUpload(IFormFile file)
{
List<Input> inputs = new List<Input>();
try
{
var extension = Path.GetExtension(file.FileName);
if (extension == ".csv")
{
// do the thing!
}
}
catch (Exception ex)
{
return BadRequest("invalid file extension");
// or try this:
// return BadRequest(new JsonResult("invalid file extension"));
}
return new JsonResult("ok");
}
}
public class Input
{
}
评论
0赞
5/17/2022
我在request.createerrorresponse上收到错误,因为“httprequest”不包含createerrorresponse的定义。
0赞
Dan Csharpster
5/17/2022
您使用的是哪个版本的 ASP.NET?
0赞
5/17/2022
我使用的是 3.1 版本
0赞
Dan Csharpster
5/17/2022
您是否包含 System.Net.Http 命名空间?
0赞
5/17/2022
是的,我已经包含了system.net.http命名空间。
评论
if(extension== ".txt" || extension == ".xls")return Json(new { errormessage ="invalid file extension"});