您可以通过创建一个AcceptHeaderAttribute
和传递来实现这一点Accept:[attrbute value]
就像,在下面的代码中,我创建了一个AcceptHeaderAttribute
[AttributeUsage(AttributeTargets.Method)]
public class AcceptHeaderAttribute : Attribute, IActionConstraint
{
private readonly string _acceptHeader;
public AcceptHeaderAttribute(string acceptHeader)
{
_acceptHeader = acceptHeader;
}
public int Order { get; set; }
public bool Accept(ActionConstraintContext context)
{
return context.RouteContext.HttpContext.Request.Headers["Accept"].Any(x => x.IndexOf(_acceptHeader) >= 0);
}
}
这是用途,
[HttpGet]
public User GetUserName()
{
return new User { Name = "Abcd" };
}
[HttpGet]
[AcceptHeader("app/vnd.user")]
public User GetUserEmail()
{
return new User { Name = "XYZ@ABCD.com" };
}
这是提琴手的回应
![在此处输入图像描述](https://i.stack.imgur.com/wAblO.png)