C# 如果MVC控制器中存在条件问题

C# 如果MVC控制器中存在条件问题,c#,asp.net-mvc-3,C#,Asp.net Mvc 3,我正在开发MVC应用程序。 在controller中,我编写了简单的代码 string LastDesignation = approval.GetDesig(oPA.CreatedById); string CurDesignation = loggedEmployee.DType.ToString(); if (CurDesignation != LastDesignation ) { ApprovalFlow oApproval= new Appr

我正在开发MVC应用程序。 在controller中,我编写了简单的代码

 string LastDesignation = approval.GetDesig(oPA.CreatedById);
    string CurDesignation = loggedEmployee.DType.ToString();
    if (CurDesignation != LastDesignation )
    {
        ApprovalFlow oApproval= new ApprovalFlow(loggedEmployeeId);
       foreach (var item in oApprovalFlow.ApproverEmployees)
          {
                   .
                   .
                   .
          }
    }
问题是在一种情况下,两个字符串变量都包含相同的值,如下所示, 但仍然满足if条件,并且光标转到for循环,它应该退出if条件

 CurDesignation = "HOD"
 LastDesignation = "HOD" 
完全搞糊涂了,我在处理if循环中的字符串时是否忘记了什么

问题解决了

忘记使用Trim(),其中一个字符串中有一个空格:)


if条件中的字符串不相等。可能您在调试时遗漏了一些内容,或者它们看起来相同,但却是不同的unicode字符。但两者并不平等。尝试将它们保存到某个地方,最好保存到可以用十六进制编辑器打开的文件中。

不等于比较大小写和区域性。。。。它们看起来可能相同(相同的字符和大小写),但文化或其他差异可能不同


在c#中,两者都有!=还有!equals具有相同的行为,因此它必须与before问题有关。

我建议您在
if
条件的行上放置一个断点,并确认值确实相同。我这么说是因为,如果你的代码进入了
for
循环,那么值实际上是不一样的,你只是没有意识到。如果你的问题是通过你的问题解决的,你不在问题中发布它,而是回答你的问题并将自己标记为正确。我讨厌这样简单的事情。你会说,我不能让30分钟过去,问题解决了。。。忘记使用Trim(),其中一个字符串中有一个空格:)