2012-05-09 25 views
5

नैन्सी dynamic चर के माध्यम से मेरे हैंडलर को मेरी क्वेरी-स्ट्रिंग और फॉर्म वैल्यू पास करता है। नीचे दिया गया उदाहरण दिखाता है कि नैन्सी अनुरोध के माध्यम से एक पोस्ट हैंडलर में फॉर्म मानों को पास किया जा रहा है उदा। Request.Form.xxxनैन्सीएफएक्स: मैं कैसे जांचूं कि क्वेरी-स्ट्रिंग/फॉर्म मान सही ढंग से मेरे हैंडलर को पास कर दिए गए हैं या नहीं?

हैंडलर

Post["/"] = _ => 
    { 
     var userId = (string) Request.Form.userid; 
     if (userId.IsEmpty()) return HttpStatusCode.UnprocessableEntity; 
     return HttpStatusCode.OK; 
    }; 

आप देख सकते हैं कि मैं एक स्ट्रिंग के लिए userid कास्टिंग कर रहा हूँ और फिर अगर मूल्य (string.IsNullOrEmpty() के बराबर) शून्य या खाली स्ट्रिंग है की जाँच करने के लिए एक स्ट्रिंग विस्तार विधि का उपयोग कर।

मैं क्या पसंद करूंगा कि गतिशील प्रकार पर विस्तार विधि हो ताकि मैं कुछ और करने से पहले अपनी सैनिटी जांच कर सकूं। मैं कोड इस तरह हैं:

if(Request.Form.userid.IsEmpty()) return HttpStatusCode.UnprocessableEntity; 

हालांकि, अगर आप dynamic प्रकार के लिए विस्तार तरीकों नहीं हो सकता। इसके अलावा, आप प्रतिबिंब के माध्यम से किसी संपत्ति की उपस्थिति की जांच नहीं कर सकते हैं। डीएलआर में आपका स्वागत है।

प्रश्न

क्या सबसे आसान, सबसे सुरक्षित सुनिश्चित करना है कि उम्मीद क्वेरी/प्रपत्र मूल्यों मेरी नैन्सी हैंडलर के लिए पारित किया गया है पूर्व जांच करने के लिए तरीका है?

धन्यवाद

उत्तर

12
Request.Form.userid.HasValue 

निर्माण इस तरह के फार्म, क्वेरी के रूप में सभी DynamicDictionary सदस्यों, और मार्ग मापदंडों

2

आप यानी एक ModelBinder रूप है, जहां के गुणों को अपने मॉडल बाध्य करने के लिए बाध्य उपयोग कर सकते हैं के लिए मॉडल क्लास आपके एचटीएमएल नियंत्रण नामों से मेल खाती है।

var course = this.Bind<Course>(); // Course is our model class 
if(course != null) { 
    // your codes go here 
} 

 संबंधित मुद्दे

  • कोई संबंधित समस्या नहीं^_^