2009-03-02 8 views
2

Ich habe eine Klasse auf serverseitige wie folgt aus:Wie kann ich eine Klasse erstellen, ohne sie in JavaScript zu definieren?

public class Address 
{ 
    public Address(string countryCode) 
    { 
     this._CountryCode = countryCode; 
    } 

    private string _CountryCode = string.Empty; 
    public string CountryCode 
    { 
     get { return _CountryCode; } 
     set { _CountryCode = value; } 
    } 

} 

und ich habe eine Methode, die von Ajax-Methoden aufgerufen:

[AjaxMethod] 
public static Address ValidateAddress(Address address) 
{ 
    // Some logic here... 
    return address; 
} 

Und ich möchte diese Methode in Client-Seite rufen, sondern Wie kann ich die Adressklasse auf der Client-Seite instanziieren? Ich möchte keine Klasse namens Address in JavaScript-Datei definieren.

<script> 

function valaddress(){ 

    var address = new Address(); // I'm asking here ?? 
    address.CountryCode = 90; 

    // This part is ok, no problem in here : 
    var validatedAddress = AddressControlDataHelper.ValidateAddress(address).value; 

} 

</script> 

Gibt es eine Möglichkeit, dies zu tun? Oder muss ich meine Address-Klasse in JavaScript schreiben?

Antwort

5
var address = { 
    CountryCode: "1" 
} 

, die den Trick tun sollten

<script> 
    function valaddress(){ 

     var address = { 
      CountryCode: "90" 
     }; 

     // This part is ok, no problem in here : 
     var validatedAddress = 
     AddressControlDataHelper.ValidateAddress(address).value; 

    } 
</script> 
+0

genau was ich will, danke! – Canavar

+0

Kein Problem, froh, dass es geholfen hat! – Bob

0

die .net AJAX Erweiterungen verwenden, können Sie die GenerateScriptType Tag über zum Beispiel Ihre Server-Seite ValidateAddress()

hinzufügen
[GeneratScriptType(typeof(Address)] 

Der Server würde die notwendigen js nach unten an den Client senden, so dass Sie die js

nennen
var address = new nameofyournamespace.Address() 

die msdn GenerateScriptTypeAttribute reference

Verwandte Themen