У меня есть веб-сайт, который является в основном единственной страницей, содержащей набор динамического контента. В нормальном функционировании пользователь никогда не должен оставлять эту страницу. Обработать/сообщить определенные ошибки, хотя, я должен перенаправить к ошибочной странице. Таким образом на ошибочной странице я хочу предоставить ссылку назад на нормальную страницу, которая предоставляет приложению информацию, запрошенную для восстановления всего динамического контента, который был ранее открыт.
Я думаю, что могу восстановить страницу путем парсинга querystring с JavaScript и перезагрузки динамического контента. Я не уверен, является ли это лучшим способом, но у меня есть он работа. Так href в ссылке на моей ошибочной странице должен посмотреть что-то как:
MySite/MyController/MyAction?1,5,8,9
где числа в querystring в основном указывают на идентификатор довольных разделы для загрузки в на document.ready
.
Я теперь застреваю о том, как генерировать эту ссылку все же. Я думаю, что должен передать эти числа в контроллер так или иначе, таким образом, контроллер может передать их в ошибочное представление, которое затем генерирует "заднюю" ссылку.
У меня есть стандартная форма HTML для загрузки файла:
using (Html.BeginForm("MyAction", "MyController",
FormMethod.Post,
new { enctype = "multipart/form-data" }))
{ /* ... */ }
У меня затем есть кнопка, которая называет jQuery .submit()
метод на форме.
Так, вопрос, когда я нажимаю на кнопку, которая отправляет форму, как я могу присоединить дополнительные данные, таким образом, я могу получить доступ к нему в своем контроллере?
Надежда это ясно, если не сообщенный мне и я могу обеспечить больше детали.Спасибо.
Править: Мне пришло в голову, что я мог отправить эту информацию со скрытым полем в форме. Я попробую это, если бы я не могу найти лучший путь, но я хотел бы более универсальное решение, если это возможно, поскольку у меня есть много форм на странице, и идеально я хотел бы это доступные данные любому/всем им.
ваш URL-адрес должен быть biult непосредственно перед отправкой формы с помощью .submit () не в теге Html.BeginForm .... я не вижу здесь проблемы ... с чем именно вы имеете дело?
Я знаю, что это не совсем то, о чем вы спрашивали, но вместо того, чтобы в первую очередь перенаправлять пользователя, почему бы вам не показать модальное окно (основанное на jquery), содержащее iFrame. Href iFrame может быть определен вызывающей страницей и может отображать страницу ошибки.
Не уверен, что это помогает, но я использовал эту технику и обнаружил, что мне не нужно беспокоиться о том, чтобы вернуть пользователя туда, откуда он начал. В дополнение к этому вам не нужно будет перестраивать / перезагружать исходный контент, поскольку он все еще будет на вызывающей странице.
**** РЕДАКТИРОВАТЬ **** После прочтения ваших комментариев, возможно, вы могли бы сделать следующее ...
Таким образом, вам не нужно покидать текущую вызывающую страницу.