如何在 MVC 视图中求和值?
Posted
技术标签:
【中文标题】如何在 MVC 视图中求和值?【英文标题】:How can I sum values at MVC view? 【发布时间】:2015-11-11 20:57:44 【问题描述】:我想总结现在显示的所有 KwotaOplaty 记录。 请注意,我正在使用 SEARCHING(在控制器上),所以当我搜索特定记录时,我想将它们全部汇总。
控制器:
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*@
【问题讨论】:
在控制器中对它们求和并将值传递给视图(作为视图模型中的属性,或作为ViewBag
属性)
【参考方案1】:
您应该能够使用 Sum 方法并将结果值放入 ViewBag 值并使用 Razor 引用它。应该是这样的:
在控制器中
ViewBag.Total = yourCollection.Sum(x => x.ThePropertyYouWantToSum);
在视图中
@ViewBag.Total
记得加入
using System.Linq;
【讨论】:
【参考方案2】:@Model.Sum(b => b.KwotaOplaty)
【讨论】:
@Piter 是的,你并不真的需要 Display helper.. 你可以输出总和 谢谢@JamieD77。我被困在尝试做类似 value++ 的事情。您的回答为我指明了正确的方向:@(Model.element + 1)以上是关于如何在 MVC 视图中求和值?的主要内容,如果未能解决你的问题,请参考以下文章
MVC-如何根据在同一视图文本框中输入的值设置复选框的显示名称