Как мне манипулировать реферером для RedirectToPage для обработчика страниц? - PullRequest
0 голосов
/ 01 октября 2019

Мой сценарий очень прост.

  • У меня есть страница обзора, где я могу создать макет.
  • У меня есть страница Add, на которой я могу ввести предметы первой необходимости.
  • У меня есть страница Edit, на которой я могу манипулировать особенностями
  • У моего MasterLayout есть кнопка возврата, которая использует HttpContext.Request.Headers["Referer"]

Снимок экрана находится на странице добавления.

Когда я добавляю свой макет, я хочу изменить Referer, поэтому, когда меня перенаправляют на ./Edit, для реферера должно быть установлено значениедругая страница, вместо ./Add - ради примера google, но на самом деле это должна быть страница обзора.

Нужно ли мне писать собственное промежуточное ПО для этого?

update: это не работает - URL работает, но добавление реферера таким образом не работает.

var linkGenerator = HttpContext.RequestServices.GetService<LinkGenerator>();
var url = linkGenerator.GetPathByPage("/LayoutEngine/Administration/Overview");

HttpContext.Response.Headers.Add("Referer", url);
HttpContext.Request.Headers["Referer"] = url;

enter image description here

1 Ответ

0 голосов
/ 01 октября 2019

Заголовки HTTP действительны только для текущего ответа. Когда вы устанавливаете перенаправление, текущий ответ содержит ваш пользовательский заголовок, но когда браузер отслеживает местоположение перенаправления, эти заголовки больше не присутствуют, вам необходимо отправить значение Overview в виде строки запроса на страницу редактирования:

  .........
  var url = linkGenerator.GetPathByPage("/LayoutEngine/Administration/Overview");
  .........
  return RedirectToPage("./Edit", new{id = result.Result, returnUrl = url});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...