【问题标题】:How can I display A ViewBag using information from my database and using .include()?如何使用数据库中的信息并使用 .include() 显示 ViewBag?
【发布时间】:2021-10-16 00:38:07
【问题描述】:

我是 ASP.NET/EntityFramework 的新手,我创建了一个简单的银行应用程序。我遇到的问题是我无法显示余额。 这是我需要在模型中使用的关键部分:

        public double Balance
    {
        get { return Transactions.Sum(transaction => transaction.Amount); }
    }

这是我需要使用的控制器中的关键部分:

        [HttpPost("/money")]
    public IActionResult Money(Transaction trans)
    {
        if(ModelState.IsValid)
        {
            ViewBag.balance = dbContext.Transactions
                .Include(t => t.Amount);
            dbContext.Transactions.Add(trans);
            dbContext.SaveChanges();
            return RedirectToAction("Index");
        }
        var user = loggedInUser;
        ViewBag.User = user;
        ViewBag.Transactions = dbContext.Transactions
            .OrderByDescending(t => t.CreatedAt)
            .Where(t => t.UserId == loggedInUser.UserId);
        return View("Index");
    }

这是我试图使用 ViewBag 取得平衡的视图:

<p>Current balance: @ViewBag.User.Balance</p>

我假设问题与此有关:

ViewBag.balance = dbContext.Transactions
                .Include(t => t.Amount);

【问题讨论】:

    标签: asp.net .net asp.net-mvc entity-framework asp.net-core


    【解决方案1】:

    首先,确保您可以从dbContext.Transactions.Include(t =&gt; t.Amount); 获得价值。

    第二,你设置ViewBag.balance = ...,所以在你看来。您可以通过&lt;p&gt;Current balance: @ViewBag.balance&lt;/p&gt;获取。

    提示:

    如果你想从User模型中获得价值,你需要添加@model User,然后你可以使用@Model.Balance这样的东西来获得平衡。

    更多细节可以参考官方文档:

    Part 4, add a model to an ASP.NET Core MVC app

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-11-16
      • 2011-10-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多