如何在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;