微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

从审计表中拉取记录列表

如何解决从审计表中拉取记录列表

我正在尝试从审计表中提取 ID 和用户名列表,该审计表填充有来自单独表的 ID,以及对某个想法进行投票的人的用户名

流程应该是:

  1. 看到一个想法
  2. 点击投票按钮
  3. 将创意 ID、登录用户和他们点击投票按钮的日期时间添加到 IdeaBoardVote 表中。
  4. 如果在查询 IdeaBoardVote 表后,IdeaId 和 Username 与 IdeaBoard 记录 Id 和 Username 匹配,则禁用投票按钮。

我正在尝试使用 foreach 循环遍历 IdeaBoardVote 表以查找匹配项,但出现以下错误

'System.Web.Mvc.SelectListItem' does not contain a deFinition for 'IdeaId'

这是我用来填充列表的控制器代码

    [HttpGet]
    public ActionResult Index(int page = 1,string message = "")
    {

        ViewBag.Message = message;
        if (!Request.IsAuthenticated)
        {
            ViewBag.Message = "You must be logged in to Vote on or create new ideas.";
        }

        //Populate list of IdeaIds and Usernames from IdeaBoardVote table
        var ideaBoardVotes = db.IdeaBoardVotes.ToList();
        ViewBag.IdeaVoters = new SelectList(ideaBoardVotes,"IdeaId","Username");

        var ideaBoards = db.IdeaBoards.OrderByDescending(i => i.VoteCount).Take(100);
        int pageSize = 10;
        return View(ideaBoards.ToPagedList(page,pageSize));
    }

这是我的观点:

@{bool hasVoted = false;}
foreach (var Vote in ViewBag.IdeaVoters)
{
    if (Vote.IdeaId == idea.Id && Vote.Username == User.Identity.Name)
    {
        hasVoted = true;
    }
}
if (!hasVoted)
{
    <a href="@Url.Action("IncreaseVote","IdeaBoard",new { id = idea.Id })" class="btn btn-default btn-sm width-100 margin-bottom text-left">
        Vote <span class="glyphicon glyphicon-thumbs-up blue"></span>
    </a>
}

我收到错误消息的原因是什么?

解决方法

可能是列名 IdeaId IdeaBoardVotes 表中还有其他内容

ViewBag.IdeaVoters = new SelectList(ideaBoardVotes,"IdeaId","Username");
,

谢谢@Sreenath。你的建议正是我所缺少的。这是我如何解决这个简单问题的方法。在我的foreach 循环中,我使用的是vote.IdeaId 和vote.Username。我将它们更改为 vote.Value 和 Vote.Text。

if (vote.Value == idea.Id.ToString() && vote.Text == User.Identity.Name)
{
    hasVoted = true;
}

此外,更改了 bool 的声明位置,使其成为本地范围而不是页面范围。

这些微小的变化带来了不同。再次感谢@Sreenath。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。