Как перенаправить при вводе неправильного URL в адресной строке - PullRequest
1 голос
/ 13 мая 2019

У меня есть веб-приложение Asp.net MVC, которое имеет как минимум два контроллера. При отправке первой формы активируется метод Create post action первого контроллера (сохраняются родительские данные в db), а затем перенаправляется на метод Create get action, а затем отображается форма для заполнения дочерних сущностей. Это означает, что мне придется передать родительский Id в качестве параметра этому контроллеру, который я делаю и успешно сохраняю в дочернюю таблицу как внешний ключ. Моя проблема в том, что я не знаю, как помешать кому-либо ввести непосредственно в адресной строке URL-адрес дочерней формы без обязательного родительского идентификатора, который создается из родительской формы (например, https://localhost/controller2/Create). Я имею в виду маршрут, который будет перенаправлять обратно в родительскую форму всякий раз, когда кто-то делает это, но не уверен, как в коде.

1 Ответ

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

Я предполагаю, что вы использовали RedirectToAction в методе Create Controller1 для перенаправления на Create из Controller2

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

Например, вы передаете parentId в качестве аргумента в этот метод GET Create. Таким образом, вы можете сделать что-то вроде этого:

public ActionResult Create(string parentId)
{
    if(parentId == null)
    {
        //return some error code like 404 with corresponding error view
    }
    else
    {
        //check if parentId is a valid one and perform the logic as usual
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...