2011-02-28 84 views
1

這有點奇怪。調用RegisterStartupScript時出現「Object expected」錯誤

我有以下情形:

包含usercontrol的頁面 - 用於彈出窗口。這個用戶控件有一個佔位符,所以我可以在這個彈出框中動態加載任何用戶控件。這很好 - 並且都在ajax更新面板中。

裏面的動態加載的用戶控件我有一個JScript聲明的一個如下:

<script type="text/javascript"> 
function setup(){ 
    alert("test"); 
} 
</script> 

而在代碼隱藏我有這樣的方法吧:

ScriptManager.RegisterStartupScript(this, this.GetType(), "setup" + Guid.NewGuid().ToString(), "setup();", true); 

我之所以有一個Guid扔在那裏,如果我不止一次地調用這個方法,那麼它就不會讓我煩惱。

現在,這個方法被連接到一個按鈕。這在firefox中工作得很棒。但在IE8它給了我這個js錯誤:

「預期的對象」上線197910701焦炭1

所以我甚至無法調試它,因爲很明顯該行不存在的 - 任何想法?

回答

2

我剛剛得到相同的錯誤,希望能在這裏找到答案。經過多一點調查,問題(對我來說)是一個簡單的... javascript功能我試圖在我的服務器生成「<腳本>」標記不存在(它是錯過類型)。我假設你已經過了兩個月後的這個問題,但如果其他人絆倒了這一點,它可能會有用。

+0

我實際上完全放棄了asp.net的MVC3。不僅僅是因爲這個:)雖然你很好回答 – Dynde 2011-05-13 08:55:07

0

另一個原因可能是該函數是在結束標記之後定義的。 爲了使RegisterStartupScript正常工作(並找到javascript函數),該函數必須在表單標籤之前或其內部定義,但不要在結束標籤之後定義(否則將發生對象預期錯誤)。

相關問題