【问题标题】:Custom validate attribute on query parameter web api查询参数 web api 上的自定义验证属性
【发布时间】:2018-06-21 14:22:21
【问题描述】:

我有以下控制器,它将字符串格式的 guid 作为查询参数。

我想在执行方法之前验证它们是有效的 guid,但我不确定如何触发我的自定义 ValidationAttribute:

controller.cs

public async Task<Profile> GetProfile([ValidGuid] string id)
{
    ...
}

ValidGuidAttribute.cs

internal class ValidGuidAttribute : ValidationAttribute
{
    public override bool IsValid(object value)
    {
        try
        {
            Guid.Parse(value.ToString());
            return true;
        }
        catch (Exception e)
        {
            throw new InvalidIdException($"{value.ToString()} is an invalid id");
        }
    }
}

任何指出如何触发我的IsValid 方法的帮助将不胜感激。

【问题讨论】:

    标签: asp.net-web-api custom-attributes validationattribute


    【解决方案1】:

    你应该使用路由约束https://docs.microsoft.com/en-us/aspnet/web-api/overview/web-api-routing-and-actions/attribute-routing-in-web-api-2#route-constraints

    [Route("getprofile/{id:guid}")]
    public async Task<Profile> GetProfile(string id)
    {
        ...
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-09-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多