我的代码现在看起来像这样:
return Ok(new
{
error = "Username not found",
errors = "Username not found",
success = false
});
和
return Ok(new
{
error = "Username not found",
errors = results.Errors,
success = false
});
我想要做的是将错误转换为字符串列表,然后在第一次返回时将列表的第一个元素设置为“未找到用户名”。我也希望有一个课程而不是新课程,但我应该使用私人课程还是公共课程?
有人可以就如何做到这一点给我一些建议吗?
答案 0 :(得分:0)
如果你使用私有构造函数,则必须通过另一个公共API公开它 - 例如静态方法。所以你有两个选择,一个是公共构造函数或属性初始化器。
最后制作错误列表很简单,Lucas Trzesniewski给你举例说明。
公共建设者的版本:
public class Ok
{
public Ok(IList<string> errors, bool success)
{
this.Errors = errors;
this.Success = success;
}
public IList<string> Errors { get; set; }
public bool Success { get; set; }
}
带私有构造函数的版本:
public class Ok
{
private Ok(IList<string> errors, bool success)
{
this.Errors = errors;
this.Success = success;
}
public IList<string> Errors { get; set; }
public bool Success { get; set; }
public static Ok Create(IList<string> errors, bool success)
{
return new Ok(errors, success);
}
}
答案 1 :(得分:0)
查看响应,您可以使用Web API中的内置方法来简化此操作。
例如,您的回复的success
属性突出显示回复可能不是确定,并且应该是 BadRequest 。
您可以使用ModelState返回整个方法中构建的错误列表。例如,在您的控制器中:
if (!userFound) {
ModeState.AddModelError("Username", "Username not found");
return BadRequest(ModelState);
}
在这个例子中,我建议使用内置构造来处理错误。这样,您就不需要额外的类来处理客户端错误。