如何在 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 视图中将剃刀值传递给 jquery 函数

如何从json获取数据中对两个或多个值求和

MVC-如何根据在同一视图文本框中输入的值设置复选框的显示名称

如何在 ASP.Net MVC 5 视图中获取 ApplicationUser 的自定义属性值?

MVC如何从视图调用控制器中的动作以返回值

如何将这些多个查询结果传递给MVC中的视图?