c# - 你能从 web api Controller 同时调用 GET 和 POST 吗?

标签 c# post asp.net-web-api get

我希望能够从同一个 url (api/test...) 调用 GET 和 POST 请求,但我目前在以下代码行中收到当前上下文错误:

[AcceptVerbs(HttpVerbs.Get|HttpVerbs.Post)]
//The name 'HttpVerbs' does not exist in the current context -- error. 

我已经在 MVC 命名空间中添加,但由于我的应用程序是 Web API,因此在声明 mvc 命名空间时它会导致授权属性失败。

    [Authorize]
    [AcceptVerbs(HttpVerbs.Get|HttpVerbs.Post)] // error
    public HttpResponseMessage post([FromUri] Query query)
    {
        if (User.IsInRole("admin"))
        {

            IQueryable<data_qy> Data = null;

            if (!string.IsNullOrEmpty(query.name))
            {
                var ids = query.name.Split(',');

                var dataMatchingTags = db.data_qy.Where(c => ids.Any(id => c.Name.Contains(id)));

                if (Data == null)
                    Data = dataMatchingTags;
                else
                    Data = Data.Union(dataMatchingTags);
            }

            if (Data == null) 
                Data = db.data_qy;

            if (query.endDate != null)
            {
                Data = Data.Where(c => c.UploadDate <= query.endDate);
            }

            if (query.data_qy != null)
            {
                Data = Data.Where(c => c.UploadDate >= query.data_qy);
            }

            Data = Data.OrderByDescending(c => c.UploadDate);

            var data = Data.ToList();

            if (!data.Any())
            {
                var message = string.Format("No data found");
                return Request.CreateErrorResponse(HttpStatusCode.NotFound, message);
            }

            return Request.CreateResponse(HttpStatusCode.OK, data);
        }

        return Request.CreateErrorResponse(HttpStatusCode.NotFound, "Access Denied, Please try again.");
    }

}

如有任何建议,我们将不胜感激。非常感谢。

最佳答案

而不是写:

    [AcceptVerbs(HttpVerbs.Get|HttpVerbs.Post)]

你试过吗:

    [AcceptVerbs("GET","POST")]

或者,甚至更好:

    [HttpGet]
    [HttpPost]

?

HttpVerbs 类(在命名空间 System.Web.Mvc 中)特定于 MVC 项目,而不是 Web API。

关于c# - 你能从 web api Controller 同时调用 GET 和 POST 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24258897/

相关文章:

c# - 如何更改按下键盘按键时的 TrackBar 控件操作?

c# - 制作通用类 IEnumerable

javascript - 支持 JavaScript 中的 POST 数据

php - 将自定义帖子类型与电子商务(Woocommerce 或其他)集成 - WORDPRESS

asp.net-web-api - ASP.NET Web Api 测试 - 断言请求返回 404 响应

c# - 转换光线时 slider 未填充

c# - GetDirectories 返回一个字符串 c#

java - Spring Boot - 不支持请求方法 'POST'(方法不允许)

asp.net - VS2015有调试webapi路由的工具吗?

jquery - 未正确接收从 jquery 发送到 Web API 客户端的授权 header