我有两个相同的集合,其中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