2010-07-19 39 views
1

我有一個基本上是一個網頁,其中包含一堆動態內容。在正常的操作中,用戶不應該離開這個頁面。爲了處理/報告某些錯誤,我需要重定向到錯誤頁面。因此,在錯誤頁面上,我想提供一個鏈接回正常頁面,該頁面嚮應用程序提供重建以前打開的所有動態內容所需的信息。傳遞動態數據到ASP.NET MVC和表單提交的jQuery控制器

我想我可以通過javascript解析查詢字符串並重新加載動態內容來重建頁面。我不確定這是否是最好的方法,但我已經有效。所以在HREF我的錯誤頁面上的鏈接需要看起來像:

MySite/MyController/MyAction?1,5,8,9 

其中查詢字符串的數字基本上表示內容部分的標識的加載在document.ready

我現在停留在如何生成此鏈接。我想我需要將這些數字以某種方式傳遞給控制器​​,因此控制器可以將它們傳遞到錯誤視圖中,然後生成「後退」鏈接。

我有用於上傳文件的標準HTML形式:

using (Html.BeginForm("MyAction", "MyController", 
         FormMethod.Post, 
         new { enctype = "multipart/form-data" })) 

         { /* ... */ } 

我然後有一個按鈕,它調用在窗體上的jQuery .submit()方法。

所以,當我點擊提交表單的按鈕時,如何附加附加數據以便我可以在控制器中訪問它?

希望這是明確的,如果不讓我知道,我可以提供更多的細節。謝謝。

編輯:它發生在我身上,我可以提交此信息與表單中的隱藏字段。如果我找不到更好的方法,我會嘗試,但如果可能的話,我想要一個更通用的解決方案,因爲我在頁面上有很多表單,理想情況下我希望這些數據可用於任何/所有他們。

回答

1

你的網址應該是在發送帶有.submit()而不是Html.BeginForm標籤的表單之前的biult。 我看不到問題在這裏......你究竟在處理什麼?

+0

我不要以爲可以在提交方式中指定一個網址,請問你能解釋一下嗎? – fearofawhackplanet 2010-07-19 10:05:41

1

我知道這並不完全符合您的要求,而是經歷了重定向用戶的麻煩,爲什麼您不顯示包含iFrame的模式窗口(基於jQuery的窗口)。 iFrame href可以通過調用頁面來確定,並可以顯示錯誤頁面。

不知道這是否有幫助,但我已經使用這種技術,並發現我不需要擔心讓用戶回到他們開始的地方。除此之外,您不需要重新構建/重新加載原始內容,因爲它仍將位於呼叫頁面上。

**** ****編輯閱讀您的意見後,也許你可以執行下列操作...

  1. 鏈接點擊 - 打開指向一個iframe一個模式彈出。
  2. iframe調用控制器上的動作來下載文件。
  3. 該視圖可以說「下載文件...請稍候,點擊此處關閉等。「
  4. 如果操作引發錯誤然後重定向到錯誤頁面正常,因爲它是在iframe模式彈出內。

這樣,你不需要離開當前調用頁面。

+0

這是我的首選方法,但我不認爲這是可能的,實際上我在我的問題中犯了一個小錯誤, m不會形成ajaxing。看到我在此之前的問題,這解釋了爲什麼我顯示一個新的錯誤頁面:http://stackoverflow.com/questions/3229280/asp-net-mvc-how-can-i-return-an - 錯誤 - 從 - 一個文件下載 - 動作 - 不樂aving – fearofawhackplanet 2010-07-19 10:01:29

+0

我明白了,所以基本上你有一個鏈接到「下載文件」,如果這會拋出一個錯誤,那麼你想以某種方式顯示錯誤。如果沒有發生錯誤,則需要下載文件。 – Rippo 2010-07-19 10:22:55

+0

是的,這是正確的。如果我必須在新的頁面上顯示錯誤,我想要一個鏈接,可以有效地恢復出現錯誤之前的狀態。請注意,雖然我以前的問題有點簡化,因爲我使用的是文件瀏覽器對話框(表單),而不僅僅是一個靜態鏈接。 – fearofawhackplanet 2010-07-19 10:37:33

相關問題