Перенаправление в том же контроллере не работает?

#c# #asp.net #asp.net-mvc #asp.net-core-mvc

Вопрос:

Итак, я пытаюсь использовать RedirectToAction() для перенаправления на другое действие в том же контроллере. Однако все, что я пробовал, не сработало. В идеале я хочу иметь возможность вводить ссылку /projects/assign/2 и перенаправляться на /projects/create страницу. Примеры того, что я пробовал:

 [HttpGet]
public IActionResult Assign(int? id)
{
    return View("Create", id);
}
 

И:

 [HttpGet]
public IActionResult Assign(int? id)
{
    return View("Create");
}
 

Когда я ввожу /projects/assign/2 адресную строку, я получаю сообщение об ошибке, в котором говорится:

«Эта страница не работает. Если проблема не устранена, обратитесь к владельцу сайта «.

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

Любая помощь / совет приветствуется! Спасибо!

Комментарии:

1. Это имя projects вашего контроллера?

2. Да, это так, извините, я не упомянул об этом.

Ответ №1:

Примените следующие Route атрибуты:

 [Route("Create/{id:int?}")]      
[Route("Assign/{id:int?}")] 

public IActionResult Create(int? id)
{
   ...
}
 

Для получения дополнительной информации см. Маршрутизацию в ASP.NET Ядро

Ответ №2:

просто исправьте маршрут действия

 [HttpGet("{id?}")]
public IActionResult Assign(int? id)
{
    return View("Create", id);
}