2009-12-21 24 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的条件将设置该变量,并且不会检查其他任何条件。你确定前两个条件不成立吗?