ASP.NET C# 判斷 HTTP REQUEST 請求來源 KEY 是否存在

HTTP 請求來源可以為 POST 或 GET 類型,並且夾帶 key 與 value

常用到會先檢查是否存在 key

若不存在則返回錯誤,或者對應處理,例如表單欄位未填

若存在key才進行正常程序,例如儲存表單

有幾種方式可以用來檢查

這裡以取得GET的參數來說明如何檢查 Key 是否存在

[簡單判斷是否為NULL]

判斷是否存在 KEY,簡單判斷是否為 NULL就能做到

但無法過濾空白字元

if (Request.QueryString["TextBox1"] == null)
{
    Response.Write("No Http Request Key : TextBox1<br>");
}

也可以使用 AllKeys.Contains 來檢查


//判斷KEY是否存在,但無法過濾空白字元
if (Request.QueryString.AllKeys.Contains("TextBox1"))
{
	Response.Write("Yes");
}

[判斷是否為NULL或空白字元]

斷是否存在KEY,且排除空白字元方式

若 .NET 版本小於 4.0,可以使用 IsNullOrEmpty

if (string.IsNullOrEmpty(Request.QueryString["TextBox1"]))
{
    Response.Write("No IsNullOrEmpty Http Request Key : TextBox1<br>");

}

若 .NET 版本在 4.0 以上,則可以使用 IsNullOrWhiteSpace

if (string.IsNullOrWhiteSpace(Request.QueryString["TextBox1"]))
{
    Response.Write("No IsNullOrWhiteSpace Http Request Key : TextBox1<br>");
}

[範例]

if (Request.RequestType == "GET")
{
    // 判斷是否存在 KEY,簡單判斷是否為 NULL, 但無法過濾空白字元
    if (Request.QueryString["TextBox1"] == null)
    {
        Response.Write("No Http Request Key : TextBox1<br>");
    }
    else
    {
        Response.Write(Request.QueryString["TextBox1"] + "<BR>");
    }
    //判斷KEY是否存在,但無法過濾空白字元
    if (Request.QueryString.AllKeys.Contains("TextBox1"))
    {
    Response.Write("Yes <BR>");
    }
    else
    {
    Response.Write("No <BR>");
    }
    // 判斷是否存在KEY,且排除空白字元方式
    //[.NET < 4.0]
    if (string.IsNullOrEmpty(Request.QueryString["TextBox1"]))
    {
        Response.Write("No IsNullOrEmpty Http Request Key : TextBox1<br>");

    }
    else
    {
        Response.Write(Request.QueryString["TextBox1"] + " --IsNullOrEmpty<BR>");
    }
    //[.NET >= 4.0]
    if (string.IsNullOrWhiteSpace(Request.QueryString["TextBox1"]))
    {
        Response.Write("No IsNullOrWhiteSpace Http Request Key : TextBox1<br>");
    }
    else
    {
        Response.Write(Request.QueryString["TextBox1"] + "--IsNullOrWhiteSpace<BR>");
    }
}