В .NET MVC - как нам вернуть карту параметров значений ключа / имени - PullRequest
0 голосов
/ 10 мая 2019

Я хочу портировать этот Spring MVC на .NET MVC. Этот Spring MVC может обрабатывать любые представления, потому что я читаю обратно карту:

@RequestMapping(value = "/invokeFormStrSubmit.do", method = RequestMethod.POST)
    ModelAndView addCustomer2(HttpServletRequest request, HttpServletResponse response) {

       java.util.Map<java.lang.String,java.lang.String[]> formData =  request.getParameterMap();

Это хорошо работает в Spring MVC.

enter image description here

Как мы можем сделать это в .NET MVC? Я могу прочитать параметры, когда я знаю поля формы.

Спасибо за вашу помощь ...

Ответы [ 3 ]

1 голос
/ 10 мая 2019

Request.Params - это коллекция NameValue всего, что представлено в форме.Смотрите здесь:

HttpRequest.Params

0 голосов
/ 10 мая 2019

Вы можете использовать NameValueCollection - набор связанных строковых ключей и строковых значений, доступ к которым можно получить либо с помощью ключа, либо с помощью индекса.

 public System.Collections.Specialized.NameValueCollection Params { get; }

См. Ниже, как просмотреть свойство Params длястраница и как отобразить каждую пару ключ / значение.

 string paramInfo = "";
 NameValueCollection pColl = Request.Params;
    for(int i = 0; i <= pColl.Count - 1; i++)
    {
        paramInfo += "Key: " + pColl.GetKey(i);
        string[] pValues = pColl.GetValues(i);
        for(int j = 0; j <= pValues.Length - 1; j++)
        {
            paramInfo += "Value:" + pValues[j];
        }
0 голосов
/ 10 мая 2019

HTTPRequest.Params не определен для HTTPRequest, который является частью Microsoft.AspNetCore.Http пространства имен.

Моя цель заключалась в создании контроллера, который мог бы обрабатывать поля формы из неизвестной формы.Это может быть мобильная форма JQuery с разными полями.Поскольку есть разные поля - мы не можем использовать модель.

Я получил эту работу с HTTPRequest.Form:

public IActionResult HandleSubmission()
        {
            //  NameValueCollection coll;
            try
            {
                var address = HttpContext.Connection.RemoteIpAddress;
                var userAgent = Request.Headers["User-Agent"].FirstOrDefault();
                IFormCollection userdata = Request.Form;



                int myCount = userdata.Count;

                foreach (var item in userdata.Keys)
                {
                    String yy = "5";
                   String uu= item.ToString();

                    Microsoft.Extensions.Primitives.StringValues ttt; 

                    userdata.TryGetValue(uu, out ttt); 



                }

            }
            catch (Exception w)
            {
                Console.Write(w.StackTrace);
            }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...