2012-03-09 47 views
0

問題已解決:問題是它是預編譯的網頁項目,並且需要從源代碼重新編譯頁面的外觀/感覺。如何將HTML添加到已部署的應用程序aspx頁面

在IIS7.5上部署的.Net應用程序,我只能訪問* .aspx文件而不是* .cs文件或隨該項目附帶的任何其他文件。在* .aspx頁先從以下(只是一個例子):

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="blue.cs" Inherits="p9.cblue" %> 

一切從我讀了我應該能剛插入HTML標記,或插入JS,或按照How to add html to an aspx C# codebehind page? @stackoverflow給出的建議

我試圖刪除繼承和標記仍然不會呈現在瀏覽器中。

我試圖在aspx頁面身體標記之後插入下面的JS權:

<script type="text/javascript">document.write("TEST");</script> 

它沒有露面。

我試着在上面的鏈接中給出的建議是:

<script runat="server"> 
    protected void Page_Load(object sender, EventArgs e) { 
     if (!Page.IsPostBack) { 
      Controls.Add(new LiteralControl("TEST")); 
     } 
    } 
</script> 

<!-- Try this if the above does not work --> 
<script runat="server"> 
     new protected void Page_Load(object sender, EventArgs e) { 
     base.Page_Load(sender, e); 
      if (!Page.IsPostBack) { 
       Controls.Add(new LiteralControl("TEST")); 
      } 
     } 
</script> 

既不這些方法要麼工作。我在兩次嘗試之間重新啓動了Web服務器。我甚至在嘗試之間回收應用程序池。我沒有重啓瀏覽器以擺脫緩存問題。沒有快樂。我不得不丟失一些東西。將一些HTML添加到aspx頁面非常困難,這是不可思議的。似乎人們需要經常這樣做。

再一次,我無法訪問* .cs文件,請不要回應需要編輯* .cs文件的建議。我也意識到我可以使用.Net Reflector將* .cs從DLL中取出並重新構建解決方案。但是,我不應該這樣做。我應該能夠將所需的任何標記添加到* .aspx文件並完成它。

編輯:另外一條信息可能會或可能不相關(我不是開發人員,所以我不知道這一點)。應用所在的目錄包含* .aspx文件。圖像所在的文件系統上的目錄被拉入應用程序呈現的某些頁面,但只包含一個Default.aspx文件,其中包含「這是預編譯工具生成的標記文件,不應刪除! 「

+0

重新啓動瀏覽器並不足以清除緩存,你積極清除緩存? (例如Ctrl-F5) – Dirk 2012-03-09 20:33:41

+0

你知道這是什麼樣的網絡應用嗎? MVC或Web窗體? – Zishan 2012-03-09 20:34:21

+0

德克好點,但按Ctrl-F5也不會改變任何東西,還不會呈現@Zishan它的Web窗體沒有任何實際的形式,有邏輯從SQL服務器中檢索數據並把它傳遞到Web頁面,它的渲染使用JS。 – 2012-03-09 20:51:15

回答

0

一樣多鄉親在評論中指出,這是一個預編譯的Web應用程序,並因此被重建。

未來,或者其他人在查看此頁面時,可以通過將解決方案構建爲網頁並確保在「發佈網站」步驟中「允許此預編譯的網站可更新」複選框來避免此問題被選中。這將允許您稍後更改標記和客戶端代碼,而無需重新編譯該網站。

1

添加

<script type="text/javascript"> 
     window.onload = function() { 
      alert("Woot woot!"); 
     }; 
    </script> 

結束在.aspx文件頭標記,然後再試一次。

//編輯:你已經部署了什麼樣的項目?例如。 Web安裝項目還是單擊發布?

+0

您的腳本未導致顯示警告框。我不確定項目是如何部署的,我沒有創建它。可能不是一次點擊,因爲我懷疑編碼人員有權訪問服務器。 – 2012-03-09 20:50:51

+1

如果它的所有在一個DLL它是一個Web安裝項目。然後,您必須從開發機器重建項目,以在部署的服務器上進行任何更改。 – 2012-03-09 21:05:38

1

我的投注存在緩存問題。您的示例代碼沒有通過,但只要您不將HTML代碼放在ASP標記之間(因爲它們在提供HTML之前由IIS解析),它應該如您所描述的那樣出現。

你可以從命令行在服務器上運行iisreset.exe命令清除IIS緩存

您可以在本地清除瀏覽器緩存,例如使用Ctrl-F5組合鍵

+0

感謝您的建議,但正如Lister先生在其中一個評論中指出的那樣,問題實際上是該頁面是預編譯的。不知道我是如何錯過這件事的。 – 2012-03-09 21:03:33

+0

很高興你解決了它;我總是使用可更新的預編譯,所以你仍然可以像你所描述的那樣改變aspx頁面。更多信息:http://msdn.microsoft.com/en-us/library/bb398860(v=vs.100).aspx – Dirk 2012-03-10 18:38:23

相關問題