将Request.RequestUri转换为ASP.NET Core 2.1

时间:2019-02-12 01:50:13

标签: asp.net-web-api asp.net-core jsgrid

相当于Request.RequestURI的ASP.NET Core MVC是什么?

我正在尝试设置JSGrid的ASP.NET Core实现。他们提供的示例是Core之前的版本,因此在将源代码转换为ASP.NET Core时遇到一些问题。

在转换Request.RequestUri.Query上的最后一个错误时陷入困境

我读了这个post,但不知道它如何适用于我的案子,而且也只有3岁。我希望微软提供了一个新的using,它现在可以处理RequestUri,但我似乎找不到它。

到目前为止,这是我的控制器。

using System;
using System.Collections.Generic;
using System.Linq;
using Microsoft.AspNetCore.Mvc;
using Deviation.Data;
using System.Collections.Specialized;
using System.Web;

namespace Deviation.Controllers
{
    [Route("api/[controller]")]
    [ApiController]
    public class JSGridController : ControllerBase
    {
        private readonly DeviationContext _context;

        public JSGridController(DeviationContext context)
        {
            _context = context;
        }
        public IEnumerable<object> Get()
        {
            ClientFilter filter = GetFilter();

            var result = _context.MissedDeliveries.Where(c =>
                (String.IsNullOrEmpty(filter.Delivery) || c.Delivery.Contains(filter.Delivery))
            );

            return result.ToArray();
        }

        private ClientFilter GetFilter()
        {
            NameValueCollection filter = HttpUtility.ParseQueryString(Request.RequestUri.Query);

            return new ClientFilter
            {
                Delivery = filter["Delivery"],
            };
        }
    }
}

非常感谢任何能提供一些指导的人。

1 个答案:

答案 0 :(得分:0)

尝试HttpContext.Request.Query

var q = HttpContext.Request.Query;
var deliveries = q["Delivery"];
var delivery = q["Myquery"].FirstOrDefault();