如何从存储库而不是控制器添加响应消息

时间:2019-06-20 11:20:45

标签: c# asp.net-core httpresponse

我想在控制器返回“ ok”或“ BadRequest”之前设置来自存储库的错误消息

[HttpPost(Name = "CreateAsyncEmployee")]
public async Task<IActionResult> CreateAsync(RegisterModel model)
{
    Employee employee = _repositoryContext.Employee.CreateAsync(model);
    return OK();
}

添加消息以从存储库响应http:

public async Task<Employee> CreateAsync(RegisterModel model)
{
    ....
    Httpresponse response = new HttpResponse();
    response.Current.write("register completed.");
    return employee;
}

1 个答案:

答案 0 :(得分:0)

正如评论中提到的-我完全不会这样做。控制器的重点是管理代码/业务逻辑与HTTP代码之间的交互。您在存储库方法中创建的HttpResponse仅限于该方法,因此您将不会写入对原始请求的实际响应。

关于操作方法,有很多不同的方法。如果您想返回一个错误的请求,我可能会喜欢一种验证方法。这可以检查所有必填字段是否都已填写,也可以检查它不是重复的注册。您的控制器代码将为:

[HttpPost(Name = "CreateAsyncEmployee")]
public async Task<IActionResult> CreateAsync(RegisterModel model)
{
    if (IsValid(model)
    {
        Employee employee = _repositoryContext.Employee.CreateAsync(model);
        return OK();
    }
    else
    {
        return BadRquest();
    }
}