ASP.NET MVC 2: что является более похожим на MVC способом кодирования этой кнопки «Назад» на C #? - PullRequest
1 голос
/ 01 марта 2010

Это код, который я сейчас использую:

<% Uri MyUrl = Request.UrlReferrer;
   if( MyUrl != null)
       Response.Write("<a href=\"" + MyUrl.PathAndQuery + "\">Back</a>"); %>

Я бы подумал, что есть более "MVC Html helper" способ сделать кнопку "Назад". Для этого может потребоваться дополнительная информация о уже настроенных маршрутах, список возможных параметров и т. Д., Но я не хочу предполагать, что это так. Может быть, есть какой-нибудь способ сопоставить URL с заданными маршрутами, например, как работает регулярное выражение?

Ответы [ 3 ]

2 голосов
/ 03 марта 2010

Как насчет добавления данных, которые вы хотите, в TempData, в actionfilter или базовый класс контроллера).

Каждый раз, когда страница выполняется, она добавляет свою информацию в TempData, и следующая страница будет знать, каким был реферер. Сама кнопка «Назад» будет HtmlHelper, которая будет просто идти и извлекать данные из TempData. .

Таким образом вы также устраните проблему, связанную с тем, что некоторые пользователи не отправляют информацию о реферере в запросе.

1 голос
/ 02 марта 2010

Я бы предложил сделать его частью модели представления, включенной в ваши действия. Вы можете продолжать использовать реферер для его заполнения, или у вас может быть даже параметр «обратный URL» в вашем действии, чтобы вызывающая страница могла предоставить свой собственный обратный URL.

1 голос
/ 01 марта 2010

ну, для одного вы всегда можете сделать то, что вы делали выше, но внутри HtmlHelper.

Как вы указали, на самом деле слишком много переменных, чтобы делать это на основе маршрутизации, если у вас нет известного рабочего процесса (например, для мастера).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...