在标签中显示一个对象值(来自集合)

时间:2013-07-31 16:20:12

标签: asp.net-mvc asp.net-mvc-4

我正在学习MVC4。我可以使用foreach以表格格式显示记录。

现在,我需要在标签中显示{only}第一个Description对象的Topic。我需要在没有foreach的情况下完成。我们怎么做呢?

查看

@model MvcSampleApplication.Models.LabelDisplay

@{
    ViewBag.Title = "Index";
}

<h2>Index</h2>
@using (Html.BeginForm())
{


    foreach (var item in Model.Topics.Select((model, index) => new { index, model }))
    {
    <div>@(item.index) --- @item.model.Description---- @item.model.Code</div> <div></div>
    }
}

控制器操作

public ActionResult Index()
        {
            LabelDisplay model = new LabelDisplay();

            Topic t = new Topic();
            t.Description = "Computer";
            t.Code=101;

            Topic t3 = new Topic();
            t3.Description = "Electrical";
            t3.Code = 102;


            model.Topics = new List<Topic>();
            model.Topics.Add(t);
            model.Topics.Add(t3);

            return View(model);
        }

模型

namespace MvcSampleApplication.Models
{
    public class LabelDisplay
    {
        public List<Topic> Topics;
    }

    public class Topic
    {
        public string Description { get; set; }
        public int Code { get; set; }
    }
}

参考

  1. Iterate through collection and print Index and Item in Razor

1 个答案:

答案 0 :(得分:3)

  

我需要在标签

中显示(仅)第一个主题对象的描述

除非我完全误解了你,否则在你的视图中选择第一项(仅限)会是这样的:

@if (Model.Topics.Any())
{
    @Html.DisplayFor(x => x.Topics.First().Description)
}