1

I am trying to call a function from a Silverlight application. It should be a very simple task to do but so far I am not getting the result that I am looking for.

This is my Silverlight code:

    private void button2_Click(object sender, RoutedEventArgs e)
    {
        HtmlPage.Window.Invoke("SayHello", new string[] { "Salut!" });
    }

And this is the JavaScript code :

   function SayHello(theid) {
        alert(eval(theid));
        var divStatusDiv = document.getElementById("divStatus");
        divStatusDiv.style.backgroundColor = "Red";
    }

The alert message always show "undefined" but when I press "OK" the colour of that DIV gets changed to Red as it should be.

Why am I getting "Undefined" all the time ?

Raha
  • 1,959
  • 3
  • 19
  • 28

3 Answers3

2

You need to create the json that can be passed properly instead of just passing along an array like that. You can simply return "Salut!" instead of new string[] { "Salut!" } or you can create the json array for the string array you have.

nyxtom
  • 2,919
  • 2
  • 23
  • 24
  • How can I create json array in C# ? I found this : http://stackoverflow.com/questions/1056121/how-to-create-json-string-in-c is this what I need to do ? – Raha May 13 '10 at 10:16
1

I'm not familiar with Silverlight, but if theid has value "Salut!" inside of SayHello, then you cannot eval it, since it is a string of text, not code. You should change the line alert(eval(theid)); to just alert(theid);.

Adam
  • 1,744
  • 1
  • 14
  • 34
0

Use

alert(eval(theid.value));
Srikar Doddi
  • 15,499
  • 15
  • 65
  • 106