Преобразование Request.RequestUri в ASP.NET Core 2.1 - PullRequest
0 голосов
/ 12 февраля 2019

Что такое ASP.NET Core MVC, эквивалентный Request.RequestURI?

Я пытаюсь настроить реализацию ASP.NET Core для JSGrid .Приведенный ими пример - pre-Core, поэтому у меня возникли некоторые проблемы с преобразованием исходного кода в ASP.NET Core.

Застревание при преобразовании последней ошибки в Request.RequestUri.Query

Я прочиталэто сообщение , но я не мог понять, как оно применимо к моему делу, и ему тоже 3 года.Я надеюсь, что Microsoft предоставила новый 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 голосов
/ 12 февраля 2019

Попробуйте HttpContext.Request.Query:

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