2010-12-09 31 views
2

這與另一篇文章有​​關,我無法從網頁表單中的代碼隱藏設置URL的絕對路徑,但我能夠解決它。我有,我想的鏈接指向服務器共享一個PDF文件,網址如下:ASP.Net當點擊有效鏈接時沒有URL重定向

file://///myServer/share/MyFile.pdf 

我驗證PDF文件通過手動將其添加到我的瀏覽器地址欄中正確打開。在我輸入後,pdf將按照預期在我的瀏覽器中打開。當我嘗試點擊我的網絡表單中的鏈接時,沒有任何反應。我比較了鏈接中的URL字符串和我在瀏覽器中輸入的內容,兩者都是相同的。爲什麼錨點不會重定向到指定的位置,而是在地址欄中手動輸入它呢?任何幫助表示讚賞。

回答

2

如果您的頁面由遠程服務器提供,但包含指向本地文件的鏈接,mostmodernbrowsers出於安全原因將拒絕瀏覽這些鏈接。

您可能必須從服務器而不是客戶端機器提供您的鏈接內容才能完成此項工作。

+0

感謝弗雷德裏克,原來它是一個安全違規問題與Firefox。它在Internet Explorer中運行良好。 – kingrichard2005 2010-12-21 18:23:11

0

這裏是我用它來掃描目錄的內容,並建立一個鏈接,在服務器上的文件夾裏面的文件了一些C#代碼。這聽起來像你只有一個文件,但它仍然可以正常工作,如果需要你可以調整它。

顯然這是爲了建立一個文件夾內的文件的鏈接列表,它對你的例子來說肯定有點矯枉過正,但也許它會給你一些想法。

DirectoryInfo di = default(DirectoryInfo); 
     FileInfo[] files = null; 
     DataTable dt = new DataTable(); 
     DataRow dr = null; 
     System.DateTime filedate = default(System.DateTime); 

     di = new DirectoryInfo(Server.MapPath("~/forms")); 
     files = di.GetFiles(); 

     dt.Columns.Add("name"); 
     dt.Columns.Add("filepath"); 
     dt.Columns.Add("filedate"); 


     foreach (FileInfo inf in files) 
     { 
      filedate = inf.LastWriteTime; 

      dr = dt.NewRow(); 
      dr["name"] = inf.Name; 
      dr["filepath"] = inf.FullName; 
      dr["filedate"] = String.Format("{0:MM/dd/yyyy}", filedate); 
      dt.Rows.Add(dr); 
     } 

     DataList1.DataSource = dt; 
     DataList1.DataBind(); 

而且你的aspx頁面上:

<asp:DataList ID="DataList1" runat="server" RepeatColumns="1" GridLines="none"> 
       <HeaderTemplate> 
        <table> 
         <tr> 
          <td style="width: 450px"> 
           <asp:Label ID="label1" runat="server" Text="Form Name" Font-Bold="true"></asp:Label> 
          </td> 
          <td> 
           <asp:Label ID="label2" runat="server" Text="Creation Date" Font-Bold="true"></asp:Label> 
          </td> 
         </tr> 
        </table> 
       </HeaderTemplate> 
       <ItemTemplate> 
        <table> 
         <tr> 
          <td style="width: 446px"> 
           <a target="_blank" href='http://yourwebserverpath.com/forms/<%# DataBinder.Eval(Container.DataItem, "name") %>'> 
            <%# DataBinder.Eval(Container.DataItem, "name") %></a> 
          </td> 
          <td style="padding: 0 0 0 5px"> 
           <%#DataBinder.Eval(Container.DataItem, "filedate")%> 
          </td> 
         </tr> 
        </table> 
       </ItemTemplate> 
       <FooterTemplate> 
        <table> 
         <tr> 
          <td style="width: 446px"> 

          </td> 
          <td style="padding: 0 0 0 5px"> 

          </td> 
         </tr> 
        </table> 
       </FooterTemplate> 
      </asp:DataList>