[asp.net-mvc]显示消息与我的用户 id-它不会出现它

标签: Asp.net-MVC Linq
发布时间: 2017/3/25 4:26:06
注意事项: 本文中文内容可能为机器翻译,如要查看英文原文请点击上面连接.

正确的我现在的工作来创建一个消息传递系统的网站,但是当我要拉在它发送给我,从我,它将不显示在页面上的内容。

那里介意是否我说,它应该仅采取其中之一,所以 accepterer 它是完美的罚款。

它在这里出错

[HttpGet]
public ActionResult besked(int id)
{
    DataLinqDB db = new DataLinqDB();
    UnderviserViewModel Model = new UnderviserViewModel();

    //Brugerid :)
    int userid = Helper.BrugerInformation.SessionVale.SessionBrugerid();

    //Det som er blevet sendt til mig!
    var ViewBeskederFrom = db.MessageTeachers.Where(i => i.id == id && i.fk_userTo == userid || i.fk_userFrom == userid).ToList();
    if (ViewBeskederFrom != null)
    {
        Model.BeskederFrom = ViewBeskederFrom.ToList();
    }
    else
    {
        return RedirectToAction("Indbakke");
    }

    return View(Model);
}

如果照这样做,它效果很好。

var ViewBeskederFrom = db.MessageTeachers.Where(i => i.id == id && i.fk_userTo == userid || i.fk_userFrom == userid).ToList();

怎样才能做到,它不会出现,如果我是发件人或收件人的消息结束了?

数据库在这里 (我有 316 用户 id)enter image description here

更新

[HttpGet]
public ActionResult besked(int id)
{
    DataLinqDB db = new DataLinqDB();
    UnderviserViewModel Model = new UnderviserViewModel();

    //Brugerid :)
    int userid = Helper.BrugerInformation.SessionVale.SessionBrugerid();

    //Det som er blevet sendt til mig!
    var ViewBeskederFrom = db.MessageTeachers.FirstOrDefault(i => i.id == id);
    if (ViewBeskederFrom != null)
    {
        List<MessageTeacher> list = db.MessageTeachers.Where(i => i.id == id && i.fk_userTo == userid || i.fk_userFrom == userid).ToList();
        if (list != null)
        {
            Model.BeskederFrom = list.ToList();
        }
    }
    else
    {
        return RedirectToAction("Indbakke");
    }

    return View(Model);
}

enter image description here

解决方法 1:

因为你有一个AND条件

 i.fk_userTo == userid && i.fk_userFrom == userid

这意味着你需要有记录与两个 fk_userTofk_userFrom 具有相同的列 userId 值。从你的截图你并没有这样的记录。

你应该做的会给你任何你发送的邮件的OR条件或由其他用户向您发送消息

i.fk_userTo == userid || i.fk_userFrom == userid

此外,你第一次,如果条件 (检查记录 idid 操作方法的参数) 可能要给你只有一条记录,假设 id 表的主键。所以结果现在 ViewBeskederFrom 变量将与最大的一条记录的列表。

官方微信
官方QQ群
31647020