2013-05-31 51 views
0

我正在開發MVC應用程序。 在控制器中,我編寫了簡單的代碼。如果MVC控制器中的條件問題

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) 
      { 
        . 
        . 
        . 
      } 
    } 

問題是在一種情況下這兩個字符串變量包含像下面, 相同vlaues但仍滿足if條件和光標轉到用於循環,它應該從if條件,退出...

CurDesignation = "HOD" 
LastDesignation = "HOD" 

完全困惑,我在處理if循環中的字符串時忘記了什麼嗎?

問題解決了......

忘記使用TRIM(),有一個在字符串:)

+0

我建議你在你的'if'條件的行上放一個斷點並確認這些值真的是相同的。我這樣說是因爲,如果你的代碼進入'for'循環,這些值真的*不是相同的,你沒有意識到。 –

+1

如果您的問題已由您解決,請不要將其發佈到您的問題中,而應回答您的問題並將自己標記爲正確。 – mattytommo

+0

當我這樣簡單時,我討厭它。你就是這樣,我不能讓那30分鐘回來。 – Jonesopolis

回答

0

的一個字符串一個空間,在你,如果條件不等於。也許你在調試的時候錯過了一些東西,或者他們看起來相同,但是是不同的unicode字符。但不平等。嘗試將它們保存在某個地方,最好是保存到可以用十六進制編輯器打開的文件。

0

不等於比較兩種情況&文化....他們可能看起來一樣(相同的字符&的情況下),但文化或其他差異可能不一樣。

在c#中,!=和!equals具有相同的行爲,所以它必須與前面的問題有關。

+1

問題已解決...忘記使用Trim(),其中一個字符串有一個空格:) – bnil