无法调用JavaScript方法

时间:2014-10-15 18:52:58

标签: javascript c# asp.net

当我尝试从C#调用javascript中的方法时遇到问题。

//Code C# in pageLoad
string zone="something";
string script = "LoadZone(\"" + zone+ "\");";        
ScriptManager.RegisterStartupScript(this, typeof(Page), "Load", script, true);

//Code javaScript
function LoadZone(res)
{
    CargarMapa();
    AgregarMarkerLoad(res); 
}

这段代码对我有用我在方法“LoadZone”的第一行放了一个断点并且运行正常。但是当我尝试更改代码以在同一个.js中调用另一个方法时,只是不起作用。

 //Code C# in pageLoad
 string zone ="something";
 string script = "watchZone2(\"" + zone+ "\");";
 ScriptManager.RegisterStartupScript(this, typeof(Page), "Load", script, true);

 //Code javaScript
 function watchZone2() 
 {
     var aaa="";
 }

方法“watchZone2”位于.js中的“LoadZone”下方 我不知道为什么这个代码不起作用(最后一个)。任何想法?

修改1:

我试过你所说的@ematica:

ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "scr", "Javascript:LoadZone(" + zone + ");", true); 

但直接给了我另一个错误:

  

Microsoft JScript中的“运行时错误:'loadzone'未定义”

我正在研究这个错误。如果您有任何想法,请告诉我!谢谢!

2 个答案:

答案 0 :(得分:1)

我发现问题在于,中间是在javascript中调用2个函数,并且只能通过每个回发调用一个函数来工作。要修复它,请将两种方法集成到一个javascript中。

答案 1 :(得分:0)

尝试将其加载为JavaScript ClientScriptBlock:

 ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "scr", "Javascript:LoadZone(" + zone + ");", true);