当前位置: 首页 > 知识库问答 >
问题:

如何保证ASP.NET Web API控制器的参数不为空?

暴夕
2023-03-14

我创建了一个ASP.NET Web API控制器,如下所示:

public class UsersController : ApiController
{
    //...
    public void Put([FromBody]User_API user, long UpdateTicks)
    {
        user.UpdateTicks = UpdateTicks;
        //...
    }
}

如果客户端没有提供正确的参数,“user”参数将为null。我可以做一个全局过滤器检查每一个像这样的参数,并将返回一个400消息,如果任何错误发生。

共有2个答案

穆睿才
2023-03-14

这篇文章详细介绍了如何创建操作筛选器并全局注册它:

http://blogs.msdn.com/b/youssefm/archive/2012/06/28/error-handling-in-asp-net-webapi.aspx

在这页的底部。

佴波鸿
2023-03-14

最后,我得到了解决方案:

public class ModelValidateFilterAttribute : ActionFilterAttribute
{
    public override void OnActionExecuting(HttpActionContext actionContext)
    {
        if (actionContext.ActionArguments.Any(v => v.Value==null))
        {
            actionContext.Response = actionContext.Request.CreateResponse(HttpStatusCode.BadRequest);
        }
    }
}

还有。。。

//In Application_Start()
GlobalConfiguration.Configuration.Filters.Add(new ModelValidateFilterAttribute());
 类似资料:
  • 我是asp的新手。NETWebAPI,在asp。net web api,我如何让它为操作自动绑定多个参数,如下所示。 在一个html页面中,我使用jQueryAjax将数据发布到api,得到了一个404ERORR 我只是更改了默认路线 默认值: 改变:

  • 我看到了带有各种参数的Spring MVC控制器处理程序方法。例如: null 所以, 什么决定参数列表? 为什么Spring controller处理程序方法没有固定签名? Spring如何处理这些变化的参数列表? 是否可以输入任意类型的参数?

  • 我正在用Kotlin写一个项目,并把它放在一个控制器中: 默认情况下,< code>@Valid注释告诉Spring验证对象字段。但是Kotlin将约束注释放在构造函数参数上,所以验证不起作用。为了让它工作,我必须为注释定义使用站点目标: 这很烦人并且增加了视觉垃圾。有可能配置Spring来验证构造函数参数吗?

  • 我正在更新一个在TYPO3 v10或更高版本中使用的扩展,并且有一个常规表达式验证器的问题,我不知道如何在v10或更高版本中运行。尝试了以下方法: 但我有以下例外: 我做错了什么以及如何修复它,或者对于操作参数的RegularExpression验证器现在的正确定义是什么?

  • 给出了一种Spring-MVC控制器的方法: 如果请求URL中缺少参数,则报告一个错误,例如: JBWeb000068:message Required int参数“param1”不存在 如果省略,则可以执行此操作,但问题是,如果缺少参数,则不会报告任何错误。另一方面,如果包含,则在GET请求中需要一个名为“model”的参数。有没有一种方法可以使模型参数成为强制性的,同时保持相同的请求URL?

  • 我有过 我通过这种方式传递profileJson: 但是我的配置文件Json对象具有所有空字段。我应该怎么做才能让Spring解析我的json?