powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Почему в контроллер попадает пустой экземпляр NameValueCollection?
2 сообщений из 2, страница 1 из 1
Почему в контроллер попадает пустой экземпляр NameValueCollection?
    #39559580
Фотография Compositum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Доброго времени суток.

ASP.NET Core MVC 2

На стороне клиента наполняю и отправляю экземпляр NameValueCollection, однако в контроллере получаю незаполненный объект. В чём причина и как исправить?

Код клиента:

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
public class Class1
{
    static void Main()
    {
        string data = "Some big string...";
        Work(data);

        Console.WriteLine("Press any key for exit...");
        Console.ReadKey();
    }

    async static void Work(string data)
    {
        var guid = Guid.NewGuid();
        Uri uri = new Uri("http://localhost:61698/Home/Task/" + guid.ToString());

        using (Stream s = StringToStream(data))
        {
            var report = await PostStream(uri, guid, s);
        }
    }

    public static Stream StringToStream(string s)
    {
        MemoryStream stream = new MemoryStream();
        StreamWriter writer = new StreamWriter(stream);
        writer.Write(s);
        writer.Flush();
        stream.Position = 0;
        return stream;
    }

    async static Task<byte[]> PostStream(Uri uri, Guid guid, Stream stream)
    {
        try
        {
            using (StreamReader sr = new StreamReader(stream))
            {
                string text = await sr.ReadToEndAsync();

                var host = Dns.GetHostEntry(Dns.GetHostName());

                IPAddress ip = null;

                foreach (var item in host.AddressList)
                {
                    if (item.AddressFamily == AddressFamily.InterNetwork)
                    {
                        ip = item;
                    }
                }

                var client = new WebClient();

                var values = new NameValueCollection();
                values.Add("Guid", guid.ToString());
                values.Add("IP", ip.ToString());
                values.Add("Data", text);

                var bytes = await client.UploadValuesTaskAsync(uri, values);
                return bytes;
            }
        }
        catch(Exception err)
        {
            Console.Error.WriteLine(err.Message);
            return null;
        }
    }
}



Код контроллера:

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
public class HomeController : Controller
{
    [HttpGet]
    public IActionResult Task(Guid id)
    {
        return Ok();
    }

    [HttpPost]
    public IActionResult Task(NameValueCollection data)
    {
        if (ModelState.IsValid)
        {
            var count = data.Count; // 0
            return Ok();
        }
        else
        {
            return BadRequest();
        }
    }
}



Спасибо.
...
Рейтинг: 0 / 0
Почему в контроллер попадает пустой экземпляр NameValueCollection?
    #39559586
Фотография Compositum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Почему в контроллер попадает пустой экземпляр NameValueCollection?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]