如何 return 来自服务层的 Json 响应(Dot net core 3.1)
How to return a Json response from a service layer (Dot net core 3.1)
我有一个问题。我有一个点网核心 3.1 应用程序。我有一个约会控制器调用
预约服务。约会调用验证服务来验证数据库中的某些值。如果数据库中不存在该值,我想停止执行。
我想要 return 验证服务对客户端的响应列表。
如何 return 验证服务的响应?
代码示例:
public async Task<bool> Validate() {
bool ValidateOK = await
_validateService.ValidateObjects(ObjectsToValidate);
if (ValidateOK == false) //Throw list of Errors en messages return true;
}
Responses wil be like this
{
Errorcode: 201
ErrorMessage: Value1 doesn't exists in the database
}
{
Errorcode: 201
ErrorMessage: Value2 doesn't exists in the database
}
对于 return 一个 Json 响应,您应该更改用作端点的函数/方法的 return Type
。这是 front-end.
调用的第一个函数
在这种情况下,我建议创建自定义 class。这将使实现更具体的响应处理变得容易。并且将使您的应用程序的不同部分更易于访问。
class 看起来像这样(您可以对其进行操作以满足您的需要):
public class Response
{
public int StatusCode { get; set; }
public string Message { get; set; }
}
您的 Validate
函数应如下所示:
public async Task<Response> Validate(type objectToValidate)
{
// validation process
if (!validated) return response;
}
不要忘记将参数中的 Type
设置为您需要验证的任何值。
您的 Validate
函数不负责与 front-end 对话。所以你不希望它 return Json.
您的 Endpoint
将如下所示:
public async Task<JsonResult> MyEndpoint()
{
// your code
var response = await _validateService.Validate(objectToValidate);
return Json(response);
}
您可能需要参考 Microsoft.AspNetCore.Mvc
。
我有一个问题。我有一个点网核心 3.1 应用程序。我有一个约会控制器调用 预约服务。约会调用验证服务来验证数据库中的某些值。如果数据库中不存在该值,我想停止执行。 我想要 return 验证服务对客户端的响应列表。
如何 return 验证服务的响应?
代码示例:
public async Task<bool> Validate() {
bool ValidateOK = await
_validateService.ValidateObjects(ObjectsToValidate);
if (ValidateOK == false) //Throw list of Errors en messages return true;
}
Responses wil be like this
{
Errorcode: 201
ErrorMessage: Value1 doesn't exists in the database
}
{
Errorcode: 201
ErrorMessage: Value2 doesn't exists in the database
}
对于 return 一个 Json 响应,您应该更改用作端点的函数/方法的 return Type
。这是 front-end.
在这种情况下,我建议创建自定义 class。这将使实现更具体的响应处理变得容易。并且将使您的应用程序的不同部分更易于访问。
class 看起来像这样(您可以对其进行操作以满足您的需要):
public class Response
{
public int StatusCode { get; set; }
public string Message { get; set; }
}
您的 Validate
函数应如下所示:
public async Task<Response> Validate(type objectToValidate)
{
// validation process
if (!validated) return response;
}
不要忘记将参数中的 Type
设置为您需要验证的任何值。
您的 Validate
函数不负责与 front-end 对话。所以你不希望它 return Json.
您的 Endpoint
将如下所示:
public async Task<JsonResult> MyEndpoint()
{
// your code
var response = await _validateService.Validate(objectToValidate);
return Json(response);
}
您可能需要参考 Microsoft.AspNetCore.Mvc
。