if(Page.Request.QueryString["ParamName"] != null)
if(Page.Request.QueryString["ParamName"] == expectedResult)
//Do something spectacular
上面看起來很亂。有沒有更優雅/緊湊的方式來檢查查詢字符串參數是否爲空,如果是 - 檢索它的值?檢查查詢字符串參數值的最優雅方式是否爲空?
if(Page.Request.QueryString["ParamName"] != null)
if(Page.Request.QueryString["ParamName"] == expectedResult)
//Do something spectacular
上面看起來很亂。有沒有更優雅/緊湊的方式來檢查查詢字符串參數是否爲空,如果是 - 檢索它的值?檢查查詢字符串參數值的最優雅方式是否爲空?
我想先提供
if ((Page.Request.QueryString["ParamName"] ?? "") == expectedResult) {
,但很快意識到,用繩子,用空比較一些字符串是好的,並會產生虛假的,所以真的只是使用這將工作:
if(Page.Request.QueryString["ParamName"] == expectedResult)
//Do something spectacular
您可以使用String.IsNullOrEmpty
String.IsNullOrEmpty(Page.Request.QueryString["ParamName"]);
或者
var parm = Page.Request.QueryString["ParamName"] ?? "";
if(parm == expectedResult)
{
}
ParamName的值是什麼?你只解決了我的代碼的第一行(實際上,我應該真的使用IsNullOrEmpty - 所以+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");
http://stackoverflow.com/questions/ 349742/how-do-you-test-your-request-querystring-variables –