如何在MVC视图中求和值?
我想总结一下现在显示的所有Kwotaoplaty记录。
注意,我正在使用搜索(在控制器上),所以当我搜索特定的记录时,我想将它们加起来。
控制器:

public ActionResult Index(string oplataTyp, string szukajRej)
        {
            var TypLista = new List<RodzajOplaty>();
            var TypWyszukaj = from d in db.Oplaty orderby d.RodzajOplaty select d.RodzajOplaty;
            TypLista.AddRange(TypWyszukaj.Distinct());
            ViewBag.oplataTyp = new SelectList(TypLista);


            var oplaty = from p in db.Oplaty select p;

            RodzajOplaty RodzajOplaty;

            if (Enum.TryParse<RodzajOplaty>(oplataTyp, out RodzajOplaty))
            {
                oplaty = oplaty.Where(x => x.RodzajOplaty == RodzajOplaty);
            }


            if (!String.IsNullOrEmpty(szukajRej))
            {
                oplaty = oplaty.Where(s => s.TablicaRejstracyjna.Contains(szukajRej));
            }

            return View(oplaty.ToList());
        }

意见
    @model IEnumerable<AutoMonit.Models.Oplata>

    <h2>Zestawienie opłat pojazdów</h2>

    <p>
        @Html.ActionLink("Utwórz", "Create")
    </p>

    @*@using (Html.BeginForm())
    {
        <div>Numer rejestracyjny: </div>
        <div>@Html.TextBox("NumerRej")</div>
        <input type="submit" value="Szukaj" />
    }*@

    @using (Html.BeginForm("Index", "Oplatas", FormMethod.Get))
    {
        <p>
            Rodzaj oplaty: @Html.DropDownList("oplataTyp", "Wszystkie")<br />
           Numer rejestracyjny: @Html.TextBox("szukajRej") <br />
            <input type="submit" value="Szukaj" />
        </p>
    }

    <br />
    <table class="table">
        <tr>
            <th>
                @Html.DisplayNameFor(model => model.TablicaRejstracyjna)
            </th>
            <th>
                @Html.DisplayNameFor(model => model.Pojazd.Marka)
            </th>
            <th>
                @Html.DisplayNameFor(model => model.DataOplaty)
            </th>
            <th>
                @Html.DisplayNameFor(model => model.PrzebiegOplaty)
            </th>
            <th>
                @Html.DisplayNameFor(model => model.RodzajOplaty)
            </th>
            <th>
                @Html.DisplayNameFor(model => model.KwotaOplaty)
            </th>
            <th>
                @Html.DisplayNameFor(model => model.DodatkoweInformacjeOplaty)
            </th>
            <th></th>
        </tr>

    @foreach (var item in Model) {
        <tr>
            <td>
                @Html.DisplayFor(modelItem => item.TablicaRejstracyjna)
            </td>
            <td>
                @Html.DisplayFor(modelItem => item.Pojazd.Marka)
            </td>
            <td>
                @Html.DisplayFor(modelItem => item.DataOplaty)
            </td>
            <td>
                @Html.DisplayFor(modelItem => item.PrzebiegOplaty)
            </td>
            <td>
                @Html.DisplayFor(modelItem => item.RodzajOplaty)
            </td>
            <td>
                @Html.DisplayFor(modelItem => item.KwotaOplaty)
            </td>
            <td>
                @Html.DisplayFor(modelItem => item.DodatkoweInformacjeOplaty)
            </td>
            <td>
                @Html.ActionLink("Edytuj", "Edit", new { id=item.ID }) |
                @Html.ActionLink("Szczegóły", "Details", new { id=item.ID }) |
                @Html.ActionLink("Usuń", "Delete", new { id=item.ID })
            </td>
        </tr>
    }

    </table>

    <hr />
    <h2>Suma kosztów:</h2>
@*Here i want to display sum*@

最佳答案

您应该能够使用sum方法将结果值放入viewbag值,并使用razor引用它。应该是这样的:
在控制器中

ViewBag.Total = yourCollection.Sum(x => x.ThePropertyYouWantToSum);

在视野中
@ViewBag.Total

记住包括
using System.Linq;

10-04 23:14