我有一个带有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,尽管我在请求中提供了一个值。