2012-12-20 17 views
9

किसी ऑब्जेक्ट को मेरे एएसपी.NET वेब एपीआई जीईटी विधि में नेस्टेड ऑब्जेक्ट से गुजरने के लिए यूआरएल सिंटैक्स क्या है? क्या यह संभव है? http://mydomain/mycontroller?...नेस्टेड जटिल प्रकार को पारित करने के लिए आरईएसटी यूआरएल सिंटैक्स क्या है?

Mycontroller GET विधि:

public void Get([FromUri]MyType myType) { ... } 

सी # प्रकार:

public class MyType 
{ 
    public string Name { get; set; } 
    public NestedType Foo { get; set; } 
} 

public class NestedType 
{ 
    public int Bar { get; set; } 
} 
+0

यह एक दिलचस्प संबंधित चर्चा की तरह दिखता है: http://stackoverflow.com/questions/7104578/rest-complex-composite-nested -resources – JayC

उत्तर

9

यह संभव है - इस प्रारूप में यूआरएल गुजर कोशिश:

?myType.Foo.Bar=3&myType.Name=Maggie 
+1

धन्यवाद मैगी, आपका जवाब सही है। –

+0

क्या होता है जब आप इस मामले में कुछ ऐसा करने का प्रयास करते हैं जहां 'MyType' में निम्न संपत्ति है:' सार्वजनिक IENumerable Foos {get; सेट; } '? : ओआई ने अभी कोशिश की है और यह पता नहीं लगा सकता कि क्वेरीस्ट्रिंग में क्या रखा जाए :(मैंने जटिल प्रकारों के संग्रह से पहले यह किया है ('? MyType.MyString = firstElement & MyType.MyString = secondElement'), लेकिन कभी जटिल प्रकारों जिनमें अन्य जटिल प्रकारों का संग्रह नहीं था! :( –

+0

वाह। मुझे अभी आपका जवाब मिला: http://stackoverflow.com/a/13963155/326110 आप रॉक! –

0

आप एक प्राप्त है जो निम्न प्रदर्शन लागू करने के लिए प्रयास कर रहे हैं: 1) नाम 2 से मिलता है) Foo.Bar

द्वारा प्राप्त करें फिर आप क्वेरीस्ट्रिंग पैरामीटर का उपयोग कर सकते हैं। REST pass multiple inputs to GET method

यदि आप वास्तव में जीईटी करने की कोशिश नहीं कर रहे हैं और इसके बजाय आप सर्वर पर डेटा पोस्ट करने का प्रयास कर रहे हैं, तो आपको एक पोस्ट का उपयोग करना चाहिए।

+0

जबकि ली ने विशेष रूप से अपने प्रश्न में जीईटी का उल्लेख किया है, सवाल की भावना तकनीकी क्रिया के बावजूद तकनीकी रूप से लागू होती है। अगर हम अपने नियंत्रक की पोस्ट() विधि पर चर्चा कर रहे थे, और वह यूआरआई में पारित मानकों को स्वीकार करने के लिए (या आवश्यक) चाहता था, तो स्थिति समान होगी। "बस POST का उपयोग करें" कहने से सवाल यह नहीं है कि इसके चारों ओर स्कर्ट उतना ही सवाल है। –