Class Examples

The first example will return an own class that has some public fields to be used on the client-side JavaScript.

public class MyClass
{
  public string FirstName = "";
  public string FamilyName = "";
  public int Age = 0;
}

Click here to return an instance of the above class.

It is also working if you inherit from a class and add your own properties to the new class.

public class MyInheritedClass : MyClass
{
  public double SizeInMeters = 0.0;
  public Guid ID = Guid.Empty;
}

Click here to get an MyInheritedClass object.

Passing a own class back to the server

Next we want to pass the MyClass object back to the server. The first call will get an MyClass object from the server like we have done above. Then we want to modify the .FirstName property on the client, submit the object to the server, modify the .FamilyName there and see the results.

function doTest3() {
  // synchronous call to the server-side method to get an MyClass object
  var p = AJAXDemo.Examples.Classes.Demo.GetMyClass().value;

  p.FirstName = "CLIENT-SIDE CHANGE";	// change one property
  AJAXDemo.Examples.Classes.Demo.PutMyClass(p, doTest3_callback);
  p = null;
}
[AjaxMethod]
public MyClass PutMyClass(MyClass c)
{
  c.FamilyName = "SERVER-SIDE CHANGE";	// change one property
  return c;
}

Click here to run the test!

Create converters for your classes

One new feature is the use of converters to serialize a .NET object or deserialize a JSON string. In this example I am using a custom IJavaScriptConverter. This converter will return a new class on the client-side JavaScript that may have more properties or methods that are not returned using the built-in custom object converter (which will only return public fields and properties).

function doTest4() {
  var p = AJAXDemo.Examples.Classes.Demo.GetPerson().value;		// synchronous call to the server-side method

  // access the properties of the Person object here
  alert(p.FirstName);

  // Now, we want to save it, we call the save method of the instance
  // and get a boolean if succeded.
  var b = p.save();
}

Click here to get an Person instance and save the object using a method from the instance.

Valid XHTML 1.0 Transitional