为web api创建请求对象 [英] creating a request object for web api
本文介绍了为web api创建请求对象的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在尝试创建一个私有方法,它可以传递GET和POST请求,所以我都可以发布并从一个控制器获取。我设法创建私有方法但是为了能够在POST方法中访问GET参数,我需要创建一个Request对象,我不太清楚,我需要实现什么逻辑。
请咨询。提前致谢。
[授权]
[HttpPost]
public HttpResponseMessage帖子([FromBody]查询查询)
{
return getPata(request,query);
}
[授权]
[HttpGet]
public HttpResponseMessage 获取([FromUri]查询查询)
{
return getPata(request,query);
}
private HttpResponseMessage getPata(typeofRequest request,Query query)
{
if (User.IsInRole( admin))
{
IQueryable< data_qy>数据= 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。结束日期);
}
if (query.startDate!= null )
{
Data = Data.Where(c = > c.UploadDate > = query.startDate);
}
Data = Data.OrderByDescending(c = > c.UploadDate);
var data = Data.ToList();
if (!data.Any())
{
var message = string .Format( 没有找到数据);
return request.CreateErrorResponse(HttpStatusCode.NotFound,message);
}
return request.CreateResponse(HttpStatusCode.OK,data);
}
return request.CreateErrorResponse(HttpStatusCode.NotFound, 访问被拒绝,请再试一次。);
}
}
解决方案
请你解决这个问题! :)
http://stackoverflow.com/questions/11767911/ mvc-httppost-httpget-for-action [ ^ ]
I am trying to create a private method, which can pass both GET and POST request, so I can all both post and get from one controller. I manage to create private method but to be able to access the GET parameters in the POST method, I need to create a Request object, which I am little unclear, what logic would i need to implement.
Please advice. Thanks in advance.
[Authorize]
[HttpPost]
public HttpResponseMessage post([FromBody] Query query)
{
return getPata(request, query);
}
[Authorize]
[HttpGet]
public HttpResponseMessage get([FromUri] Query query)
{
return getPata(request, query);
}
private HttpResponseMessage getPata(typeofRequest request ,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.startDate != null)
{
Data = Data.Where(c => c.UploadDate >= query.startDate);
}
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.");
}
}
解决方案
can you tru this please ! :)
http://stackoverflow.com/questions/11767911/mvc-httppost-httpget-for-action[^]
这篇关于为web api创建请求对象的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文