例如,我有订单模型:
int Id
string Name
User user
当订单表有用户id列时,如何在收到订单时返回类似的响应:
{
id: 1,
name: "Order 1",
user: "Some username"
}
我知道这个问题看起来很简单,但我是C#和的新手。NET,不知道确切的术语以及我应该找什么教程。
基本上,您需要的是返回一个数据传输对象(DTO(。创建另一个类,比如OrderDTO
。
public class OrderDto
{
public int Id { get; set; }
public string Name { get; set; }
public string User { get; set; }
}
然后将order
对象映射到OrderDto
,然后将它们作为响应返回。
var oderDto = new OrderDto {
Id = orderModel.Id,
Name = orderModel,
User = oder.User.Username // or some other property you want
};
Automapper将是一个非常好的库,用于映射部分。
然后你的行为看起来像这个
public ActionResult GetStuff()
{
var orderModel = ....; // do your thing to get your order
var responseObj = Mapper.Map<OrderDto>(orderModel);
return StatusCode(200, responseObj);
}
然后,框架将为您完成从DTO类到Json的转换。