При передаче динамических данных контроллеру с ASP.NET отправляют MVC и jQuery на форме

У меня есть веб-сайт, который является в основном единственной страницей, содержащей набор динамического контента. В нормальном функционировании пользователь никогда не должен оставлять эту страницу. Обработать/сообщить определенные ошибки, хотя, я должен перенаправить к ошибочной странице. Таким образом на ошибочной странице я хочу предоставить ссылку назад на нормальную страницу, которая предоставляет приложению информацию, запрошенную для восстановления всего динамического контента, который был ранее открыт.

Я думаю, что могу восстановить страницу путем парсинга 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() метод на форме.

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

Надежда это ясно, если не сообщенный мне и я могу обеспечить больше детали.Спасибо.

Править: Мне пришло в голову, что я мог отправить эту информацию со скрытым полем в форме. Я попробую это, если бы я не могу найти лучший путь, но я хотел бы более универсальное решение, если это возможно, поскольку у меня есть много форм на странице, и идеально я хотел бы это доступные данные любому/всем им.

1
задан fearofawhackplanet 19 July 2010 в 10:54
поделиться

2 ответа

ваш URL-адрес должен быть biult непосредственно перед отправкой формы с помощью .submit () не в теге Html.BeginForm .... я не вижу здесь проблемы ... с чем именно вы имеете дело?

1
ответ дан 2 September 2019 в 22:56
поделиться

Я знаю, что это не совсем то, о чем вы спрашивали, но вместо того, чтобы в первую очередь перенаправлять пользователя, почему бы вам не показать модальное окно (основанное на jquery), содержащее iFrame. Href iFrame может быть определен вызывающей страницей и может отображать страницу ошибки.

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

**** РЕДАКТИРОВАТЬ **** После прочтения ваших комментариев, возможно, вы могли бы сделать следующее ...

  1. Щелкните ссылку - откройте модальное всплывающее окно, указывающее на iframe.
  2. iframe вызывает действие на контроллере для загрузки файла.
  3. В представлении может быть сказано: «Скачивание файла ... пожалуйста, подождите, нажмите здесь, чтобы закрыть и т. Д.»
  4. Если действие вызывает ошибку, перенаправьте на страницу ошибки как обычно, как в модальном всплывающем окне iframe.

Таким образом, вам не нужно покидать текущую вызывающую страницу.

1
ответ дан 2 September 2019 в 22:56
поделиться
Другие вопросы по тегам:

Похожие вопросы: