Nano Hash - криптовалюты, майнинг, программирование

Как передать сложный объект в RedirectToPage

Мне нужно добавить перенаправление на страницу с определенными параметрами. Строка запроса должна выглядеть так:

PageName?ComplexObject.Property1=true&ComplexObject.Property2=5

Я пытаюсь сделать это, передав сложный объект методу RedirectToPage:

public IActionResult OnPostRedirectToPage()
{
    return RedirectToPage(
        "PageName", 
        new
        {
            ComplexObject = new
            {
                Property1=true,
                Property2=5
            }
        });
}

Но я получаю строку запроса, которая выглядит так:

PageName?ComplexObject=ComplexObjectTypeFullName

Проблема в том, что RedirectToPage просто вызывает метод ToString для каждого свойства объекта. Как изменить это поведение и сделать перенаправление на страницу с именами свойств из моего примера?

23.09.2019

Ответы:


1

Большинство методов, подобных ResirectToPage(), вызывают ToString() методы непримитивных типов. В этом случае вам нужно переопределить метод ToString() вашего класса ComplexObject, например

public override string ToString(){
    return $"ComplexObject.Property1={Property1}&ComplexObject.Property2={Property2}";
}

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

23.09.2019
  • Мне это нужно для привязки свойств. У меня есть общая страница со свойством ComplexObject. Я думал об этом решении, но я хочу найти более точный способ. 23.09.2019

  • 2

    Я решаю создать RedirectToPageResult напрямую, и это помогает:

    return new RedirectToPageResult("PageName")
    {
        RouteValues = new RouteValueDictionary
        {
            { "ComplexObject.Property1", true },
            { "ComplexObject.Property2", 5 }
        },
    };
    
    23.09.2019
    Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..