我試圖讓我的Silverlight 4.0應用程序啓動相關的程序文件的一個文件擴展名,當用戶點擊某些內容到他們的網址,但我有不同的經驗,無論我使用HtmlPage.Window.Navigate或HyperlinkButton。Silverlight的HtmlPage.Window.Navigate和HyperlinkButton之間的區別?
我的網址是我的資源的RESTful網址,例如, 「HTTP://.../objects/object-1/package」。該URL實際上是一個ASP.NET MVC 2控制器,它返回帶有自定義擴展名的zip內容。也就是說,HTTP響應頭的樣子:
HTTP/1.1 200 OK
Server: ASP.NET Development Server/10.0.0.0
Date: Wed, 13 Apr 2011 17:22:19 GMT
X-AspNet-Version: 4.0.30319
Content-Disposition: attachment; filename=object-1.pkg
Transfer-Encoding: chunked
Cache-Control: private
Content-Type: application/zip
Connection: Close
當我使用一個hyperlinkbutton,Internet Explorer會提示我打開,保存或取消。當我選擇打開,它會打開我曾與*的.pkg關聯的應用程序:
<HyperlinkButton TargetName="_blank" NavigateUri="http://localhost:8023/objects/object-1/package">Launch!</HyperlinkButton>
但是,如果我不是使用最終使用HtmlPage.Window.Navigate命令,IE只打開一個窗口,然後迅速關閉:
string url = string.Format("{0}/objects/object-{1}/package", _webBaseUrl, objectId.Value);
Uri uri = new Uri(url);
HtmlPage.Window.Navigate(uri, "_blank");
我已經驗證了使用Fiddler2,在這兩種情況下,HTTP請求和HTTP響應看起來都一樣。這似乎是Internet Explorer或Silverlight細微差別,我不知道我可以克服,但我希望Stackoverflow社區可以確認或否認此問題。
我們遇到了與下載Excel文件相同的行爲。看起來,單擊HyperlinkButton被視爲比HtmlPage.Window.Navigate更安全,IE處理這些請求的方式也不同。 – 2011-07-08 11:20:03
我認爲這個問題是相關的:https://stackoverflow.com/questions/16927571/silverlight-hyperlink-button-and-unc-path – Trinition 2014-09-05 12:50:04