从ASP.Net Core中的ModelState获取原始字段值

时间:2018-09-13 12:00:35

标签: c# asp.net-core-mvc

我有一个带有POST方法的ASP.Net核心API,该API接收以下模型的列表:

public class Phone
{
  public PhoneType Type { get; set; }
   [RegularExpression("(\\+)(?:\\d\\s?){1,14}"]
  public string Number { get; set; }
}

public enum PhoneType
{
    HOME,
    WORK,
    MOBILE
}

我还具有以下资源过滤器:

public class InvalidRequestFilter : Attribute, IResourceFilter
{
    public void OnResourceExecuting(ResourceExecutingContext context)
    {
    }

    public void OnResourceExecuted(ResourceExecutedContext context)
    {
     if (!context.ModelState.IsValid)
       {
         foreach (var modelError in context.ModelState)
            {
                string propertyName = modelError.Key;
                string propertyValue = modelError.Value.AttemptedValue;
            }
       }
    }
}

当我将以下JSON请求发送到端点时:

[{
  "type": 0,
  "number": "0090533006403"
}]

ModelState.IsValid值变为false。 但是modelError.Value.AttemptedValue始终为null,尽管我在请求中提供了一个值。

0 个答案:

没有答案