2012-06-29 9 views
9
if(Page.Request.QueryString["ParamName"] != null) 
    if(Page.Request.QueryString["ParamName"] == expectedResult) 
    //Do something spectacular 

उपरोक्त प्रतीत होता है। क्या कोई क्वेरी स्ट्रिंग पैरामीटर शून्य नहीं है और यदि ऐसा है - तो इसके मूल्य को पुनर्प्राप्त करने का कोई और सुरुचिपूर्ण/कॉम्पैक्ट तरीका है?क्वेरी स्ट्रिंग पैरामीटर के मान को जांचने का सबसे शानदार तरीका अगर शून्य नहीं है?

+0

http://stackoverflow.com/questions/ 34 9 742/कैसे करें-आप-परीक्षण-आपके-अनुरोध-क्वेरीस्ट्रिंग-चर –

उत्तर

10

मैं

if ((Page.Request.QueryString["ParamName"] ?? "") == expectedResult) { 

की पेशकश की पहली सोचा लेकिन जल्दी से पता चला है कि तार के साथ, अशक्त के साथ कुछ स्ट्रिंग की तुलना ठीक है, और झूठा उत्पादन करेगा, इसलिए वास्तव में इसका उपयोग करने से काम होगा:

if(Page.Request.QueryString["ParamName"] == expectedResult) 
    //Do something spectacular 
7

आप उपयोग कर सकते हैं String.IsNullOrEmpty

String.IsNullOrEmpty(Page.Request.QueryString["ParamName"]); 

या

var parm = Page.Request.QueryString["ParamName"] ?? ""; 
if(parm == expectedResult) 
{ 

} 
+0

परमनाम के मूल्य के बारे में क्या? आपने केवल मेरे कोड की पहली पंक्ति का सामना किया है (प्रभावी रूप से फिर भी, मुझे वास्तव में IsNullOrEmpty का उपयोग करना चाहिए - तो +1)। –

1

मैं व्यक्तिगत रूप से विस्तार के तरीकों में से एक सरल सेट, कुछ इस तरह के साथ जाना होगा:

public static class RequestExtensions 
{ 
    public static string QueryStringValue(this HttpRequest request, string parameter) 
    { 
     return !string.IsNullOrEmpty(request.QueryString[parameter]) ? request.QueryString[parameter] : string.Empty; 
    } 

    public static bool QueryStringValueMatchesExpected(this HttpRequest request, string parameter, string expected) 
    { 
     return !string.IsNullOrEmpty(request.QueryString[parameter]) && request.QueryString[parameter].Equals(expected, StringComparison.OrdinalIgnoreCase); 
    } 
} 

और एक नमूना उपयोग

string value = Page.Request.QueryStringValue("SomeParam"); 
bool match = Page.Request.QueryStringValueMatchesExpected("SomeParam", "somevaue"); 
+0

कोड लिखना बेहतर है जो आपके कोड को जारी रखने के लिए आने वाले अन्य डेवलपर्स द्वारा पहली बार देखे जाने वाले पूर्ण, तेज़ और आसान समझ में आता है। यदि आप देखते हैं कि आपके द्वारा लिखे गए लाइनों से कोड कितना उत्पाद है, तो आप महसूस करते हैं कि आप धीमे कोड बनाते हैं। एक सरल '==' काम किया जाता है। – Aristos

+0

आलोचना स्वीकार करने में खुशी है लेकिन क्या आप समझा सकते हैं कि कोड को 'धीमा' माना जाता है? – Kane

+0

क्योंकि मैं आलोचना भी स्वीकार करता हूं, मैं धीमी कोड वापस लेता हूं, मैं इसे जांचता हूं और संकलन जो मैं देखता हूं, बनाता हूं, अतिरिक्त रूपांतरण नहीं जो मुझे पहले लगता है। (मेरा मतलब है कि कई अतिरिक्त चेक हैं, जब केवल '==' की आवश्यकता होती है लेकिन हम जो देखते हैं) – Aristos