【发布时间】:2014-06-17 08:17:01
【问题描述】:
我希望能够从同一个 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.");
}
}
非常感谢任何建议。非常感谢。
【问题讨论】:
标签: c# post asp.net-web-api get