2013-08-28 20 views
0

我正在用ASP.NET MVC 4創建一個網站。該應用程序由兩個頁面組成,其工作流程類似於Google Maps。在第一頁上,用戶鍵入患者的姓名,出生日期以及關於該患者的一些基本數據。然後用戶提交表單,並將其帶到應用程序的第二頁。第二頁只是用戶可以打印的打印預覽。我希望用戶能夠使用瀏覽器的後退和前進按鈕在兩頁之間導航(例如,在看到第二頁後在第一頁上更改輸入)在ASP MVC頁面之間傳遞變量而不發送給服務器

實際上計算出現在打印輸出上的數據是非常複雜的,我真的想讓所有的代碼在服務器端執行,我可以使用C#。所以我需要將病人的數據發送到服務器。問題是我沒有SSL證書,並且我不想通過HTTP發送患者姓名的數據(因爲這是對隱私的侵犯)。我願意通過HTTP發送患者的數據,只要它與患者的身份(客戶除外)保持分離。出生的姓名和出生日期只顯示在打印輸出的角落,並且不會影響服務器端的計算。

我可以想出兩種可能的方法來完成這項任務。第一個更優選的解決方案是通過HTTP僅發送一些表單數據的方式,但仍然以某種方式從第二頁上運行的客戶端jquery的第一頁獲取姓名和出生日期。也許我可以製作一個cookie,並以某種方式指定不發送它作爲http請求的一部分?

完成此操作的另一種方式是將整個應用程序組合成一個頁面,並通過客戶端jquery動態更改內容。在這個解決方案中,當用戶提交表單時,我可以發出一個將返回JSON的ajax請求。然後,我可以使用從服務器返回的數據(即JSON)以及表單(即患者姓名和出生日期)填充打印預覽。有沒有辦法做到這一點,同時仍然允許用戶使用瀏覽器的後退和前進命令在數據輸入頁面和打印預覽頁面之間導航,如果它們實際上是同一頁面的話?

回答

2

我不相信你所描述的可能沒有嚴重的缺點。當然,您可以將數據彙總到cookie或本地存儲中,並避免發佈POST - 但這在您看來有很多邏輯,並且非常令人討厭。

我想提醒的選項有:

  • 獲取一個SSL證書。如果這是你的方法背後的驅動力,那麼花6美元就可以得到一個。認真。

  • 將打印視圖與表單保持在同一頁面中;使用css @media類型來指定打印樣式。

+0

我在想SSL證書可能是我最好的選擇。我只是想知道是否有一個簡單的方法來做到這一點,不需要SSL證書,我會追求這一點。 –

+0

考慮到它會爲你節省多少時間(無論是現在還是下路)6美元都是*無*。如果解決了問題,請接受答案。 – STW

+0

你可以從哪裏得到6美元?最便宜的我找到的是50美元 –