2009-12-21 25 views
0

我有一個相當簡單的if語句在C#中看起來像這樣;C#:如果其他statemnt覆蓋字符串值?

string BodyContent = ""; 
    if (Request.Form["value1"] != "") 
    { 
     BodyContent = "bla bla 1"; 

    } 

    else if (Request.Form["value2"] != "") 
    { 
     BodyContent = "bla bla 2"; 
    } 
else if (Request.Form["value3"] != "") 
{ 
    BodyContent = "bla bla 3"; 
} 
else { 
    BodyContent = "Error"; 
} 

我的問題是,即使的Request.Form [「值3」]具有值是從的BodyContent在VALUE1檢查是可見的價值。 (它只能是其中一個請求表單對象在任何時間點都有值,所以它不是因爲value1和value3都有request.form值)

我在做什麼錯?

回答

4

將您的Request.Form["valueX"] != ""替換爲!string.IsNullOrEmpty(Request.Form["valueX"]),看看它對您有什麼影響。

+1

+1。如果Form數組中的條目沒有值,則它將爲空,而不是空字符串。 – RickNZ 2009-12-21 23:33:20

+0

現貨 - 它的工作原理:-) – cJockey 2009-12-21 23:47:52

0

您正在運行一串else-ifs,因此第一個爲true的條件將設置該變量,並且不會檢查其他任何條件。你確定前兩個條件不成立嗎?