2011-02-28 78 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函数),该函数必须在表单标签之前或其内部定义,但不要在结束标签之后定义(否则将发生对象预期错误)。