Как "напечатать" мое приложение, сохраняя этот тип через страницы

Я разрабатываю приложение для компании, которая продает некоторые продукты, и это приложение отвечает за управление изменениями и возвратами продуктов. Существуют разные правила для изменений и возвратов, но "экраны / просмотры" одинаковы. Это приложение должно иметь разные URL для каждого типа. например:

www.company.com/change

www.company.com/return

приложение должно иметь Login страница тоже.

Когда я захожу на сайт www.company.com/CHANGE, пользователь перенаправляется на страницу входа и на этой странице появляется ярлык с change текст.

Когда я захожу на www.company.com/RETURN, пользователь перенаправляется на страницу входа и на этой странице появляется ярлык с return текст.

Вопрос заключается в следующем: как сохранить этот тип через страницы, напомнив, что если пользователь находится в области аутентификации приложения и выхода из системы, он должен вернуться на правильную страницу входа с правильным текстом метки.

Я пытался сохранить тип в сеансе, но если сеанс закончился, невозможно узнать, какой параметр мне нужно передать на страницу входа (изменить или вернуть)

Я тоже пытался создать новый маршрут в Global.asax хотел бы сохранить тип, вот так:

routes.MapRoute(
    "qwert", // Route name
    "{type}/{controller}/{action}/{id}", // URL with parameters
    new { controller = "Login", action = "Index", id = UrlParameter.Optional } // Parameter defaults
);

Но этот URL-адрес, например: "XXX / Home / список" соответствует, и я хотел бы это просто

return/abc/abc 

а также

change/abc/abc 

чтобы соответствовать.

Я сохраню запись в базе данных с этим типом, в конце процесса.

Как я могу решить эту ситуацию?

1 ответ

Решение

Вопрос нуждается в небольшом уточнении, но если я правильно понимаю, просто обрабатывает все ссылки и URL-адреса, содержащие параметр {type}.

Я сделал небольшой тест, и я получил:

В global.asax:

public static void RegisterRoutes(RouteCollection routes)
{
    routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

    routes.MapRoute(
      "qwert", // Route name
      "{type}/{controller}/{action}/{id}", // URL with parameters
      new { controller = "Login", action = "Index", type = "", id = UrlParameter.Optional } // Parameter defaults
    );
}

А в LoginController вы можете получить такой тип:

public ActionResult Index(string type)
{
    return View();
}

Вы можете создать пользовательский атрибут для истечения срока действия сессии, как описано здесь, и вернуть пользователя на соответствующую страницу www.company.com/ndomtype}.

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