我有兩個相同的集合,其中1個傳遞給視圖,另一個集合存儲在會話中,然後顯示視圖。將兩個集合與linq和populate變量進行比較
我們在視圖上使用隱藏字段,這些隱藏字段內部是SenderId。當用戶提交頁面時,我想將提交的SenderId與Session集合中的SenderId進行比較,並填入一個變量與Id不匹配(這將意味着用戶已經篡改了隱藏字段)
This是我目前有:
var storedValues = (List<MailBox>)Session["Mail"];
var noMatch = (from x in model where storedValues.Any(s => s.SenderId != x.SenderId) select x.SenderId).ToList();
但無論我做什麼它總是選擇所有的人,即使我改變SenderId對視圖和調試時,我可以看到我已經篡改了SenderId,我可以對於我的生活來說,讓變量noMatch來填充我篡改的不正確的SenderId。
任何幫助,將不勝感激。
更新模型聲明:
public class MailBox
{
public Int64 SenderId { get; set; }
public Int64 RecipientId { get; set; }
public string Username { get; set; }
public int TotalMessages { get; set; }
public string PhotoId { get; set; }
public bool NewMessages { get; set; }
public DateTime LastLoggedIn { get; set; }
public DateTime LatestEmailDate { get; set; }
public bool LoggedIn { get; set; }
public string Message { get; set; }
public bool Delete { get; set; }
}
我想嘗試另一種語法,如:storedValues.Where (x => x.SenderId!= s.SenderId) –
@SebastianL我試過了,但我得到的錯誤:參數不能分配給參數類型bool –
請說明'model'是如何定義的。 – Kapol