Что делать с параметром значений в ASP.NET MVC?

Я вижу, что есть Controller.RedirectToAction(string actionName, string controllerName, object values), но у меня так и не заработал параметр значения. Предположим, я хочу выполнить следующую перегрузку действий в контроллере:

public ActionResult Read() 
{
    return RedirectToAction("ReadPage", "MyController", 1);
}

public ActionResult ReadPage(int page)
{
    // Doing the actual stuff 
}

… Я получаю исключение, когда пытаюсь перейти к действию Read. То же самое и с Html.ActionLink.

Что с этим? Можете ли вы передавать значения в контроллеры, вообще не заходя в браузер в MVC?

Обратите внимание на мое обновление о том, что здесь не нужны 2 метода ...

Marc Gravell 15.01.2009 16:51
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
1
1
325
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Попробуйте использовать:

return RedirectToAction("ReadPage", "MyController", new {page = 1});

Ему необходимо знать, какой аргумент вы имеете в виду (как и в более общем случае, у вас может быть много параметров), что он может вывести из вышеизложенного.

Шаблон анонимного типа (см. Выше) очень удобен в ASP.NET MVC, хотя во многих случаях Я считаю, что вы также можете дать ему заполненный словарь, чтобы означать то же самое.

Также - в этом случае нет необходимости в двух действиях; вы можете настроить свои маршруты для предоставления значений по умолчанию; вот что я писал ранее:

    public ActionResult Search(string query, int startIndex, int pageSize)
    {
        ...
    }

с маршрутами:

    routes.MapRoute("Search", "Search/{query}/{startIndex}",
             new {
                controller = "Home", action = "Search",
                startIndex = 0, pageSize = 20
             });

Теперь, если я не указываю startIndex, он по умолчанию передает 0 в мой поиск. Таким образом, я могу перейти к «/ Foo» для поиска по умолчанию или «/ Foo / 100», чтобы выполнить тот же поиск, начиная с 100. В качестве альтернативы, аргументы могут быть в строке запроса и по-прежнему будут использоваться по умолчанию с использованием значений из анон-типа.

Другие вопросы по теме