34759


ControllerからViewにデータを送り、Viewで表示しています。

foreachで回してデータを挿入していますが、この数を数えるのは可能でしょうか。  
調べてみて、できそうなのですが以下のような感じでしょうか？  
多分、簡単なことなのでしょうがお願いします。

[code]

    <div class="info_table">
        <h2>全体</h2>
        <hr>
        <table>
            <tr class="info_header">
                <th width="15%">日付</th>
                <th width="85%">タイトル</th>
            </tr>
            @foreach (var a in Model.ZentaiList.Select((Value, Index) => new { Value, Index }))
            {
                <tr>
                    <th class="left" width="15%">@m.TourokuNichizi</th>
                    <th class="left" width="85%"><a href="#" class="modal-open" data-target="con1">@m.Title</a></th>
                </tr>
    
[/code]

追記なんですが、上記を試してみたんですが、@m.TourokuNichiziの方が定義が含まれていません  
となり出来ませんでした。何か他にこうしたら件数が分るという方法があれば教えて下さい。


CC BY-SA 3.0
2017-05-12T07:04:33.610
34656
2017-05-16T13:39:10.983
2017-05-12T10:43:14.407
8000
23086
question
c# asp.net
foreachでカウントする方法


foreachで走査している間のカウント(インデックス)は、`Model.ZentaiList.Select((Value, Index) => new {
Value, Index }`の`Index`から取得することが出来ます。

Razorから取得、表示する場合は次のコードで実現できます。リストのインデックス番号込みのテーブルを表示するModel,View,Controllerのソースコードをそれぞれ提示します。

Models.cs

[code]

    using System;
    using System.Collections.Generic;
    
    namespace WebApplication1.Models
    {
        public class ZentaiListItem
        {
            public string Title;
            public DateTime TourokuNichizi;
        }
    
        public class SampleModel
        {
            public List<ZentaiListItem> ZentaiList;
        }
    }
    
[/code]

DefaultController.cs

[code]

    using System;
    using System.Collections.Generic;
    using System.Web.Mvc;
    using WebApplication1.Models;
    
    namespace WebApplication1.Controllers
    {
        public class DefaultController : Controller
        {
            public ActionResult Index()
            {
                var models = new SampleModel();
                models.ZentaiList = new List<ZentaiListItem>()
                {
                    new ZentaiListItem() { Title = "sample1", TourokuNichizi = DateTime.Now.AddDays(-1) },
                    new ZentaiListItem() { Title = "sample2", TourokuNichizi = DateTime.Now.AddDays(-2) },
                    new ZentaiListItem() { Title = "sample3", TourokuNichizi = DateTime.Now.AddDays(-3) },
                };
    
                return View(models);
            }
        }
    }
    
[/code]

Index.cshtml

[code]

    @model WebApplication1.Models.SampleModel
    
    @{
        ViewBag.Title = "Index";
    }
    
    <h2>Index</h2>
    
    <div class="info_table">
        <h2>全体</h2>
        <hr>
        <table>
            <tr class="info_header">
                <th width="15%">No.</th>
                <th width="15%">日付</th>
                <th width="70%">タイトル</th>
            </tr>
            @foreach (var item in Model.ZentaiList.Select((Value, Index) => new { Value, Index }))
            {
                var listItem = item.Value;
                <tr>
                    <th>@item.Index</th>
                    <th>@listItem.TourokuNichizi</th>
                    <th><a href="#" class="modal-open" data-target="con@(item.Index)">@listItem.Title</a></th>
                </tr>
            }
        </table>
    </div>
    
[/code]

ファイル名、名前空間などは適宜置き換えて下さい。

こちらを実行すると、下記のような感じに表示されます。  
[![実行結果](https://i.stack.imgur.com/vNTrz.png)](https://i.stack.imgur.com/vNTrz.png)


CC BY-SA 3.0
2017-05-16T13:39:10.983
34759
2017-05-16T13:39:10.983
23187
34656
answer