为web api创建请求对象 [英] creating a request object for web api

查看:83
本文介绍了为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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆