2014-01-14 102 views
-1

爲什麼我會看到上述的錯誤代碼?該錯誤。特別是發生在t.TerritoryID == territoryID部分:運算符'=='不能應用於'int'和'string'類型的操作數錯誤

[HttpPost] 
public ActionResult Add(EmployeeViewModel employee, string[] territories) 
{ 
     ModelState.Remove("territories"); 

     if (ModelState.IsValid) 
     { 
      if (territories != null) 
      { 
       employee.Territories = territories.Select(territoryID => repository.Territories.FirstOrDefault(t => t.TerritoryID == territoryID)); 
      } 

      employee.EmployeeID = repository.CreateEmployee(employee); 
     } 

     return RedirectToAction("Index"); 
} 

如果你想知道,TerritoryID是一個整數。關於如何糾正這個問題的任何建議?提前致謝。

+0

首先將int轉換爲一個字符串或將該字符串轉換爲一個int。 – Max

+0

因爲'territories'是一個字符串數組。 – Magnus

+0

't => t.TerritoryID.ToString()== territoryID'? – sebagomez

回答

8

int和string兩種不同的類型,你不能直接對它們進行比較。您可以將int轉換爲字符串,反之亦然。

變化territories爲int數組:var territoriesInt = territories.Select(x => int.Parse(x)).ToArray(),然後使用它。

上面的代碼是字符串到int的轉換。如果一個字符串不包含數字,這可能會失敗。如果有人發送錯誤的數據,我更願意讓它失敗。如果您將區域字符串與territoryID.ToString()進行比較,則也可以以相反的方式完成。

相關問題