【发布时间】:2013-08-01 12:19:21
【问题描述】:
我正在学习 MVC4。我可以使用foreach 以表格格式显示记录。
现在,我需要在标签中显示(仅)第一个Topic 对象的Description。我需要在没有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; }
}
}
参考
【问题讨论】:
-
不要在视图中执行 LINQ。为您的视图创建一个视图模型并在其中发送数据
-
@Shyju:在视图中执行 LINQ 查询(实际上会导致发出数据库查询)是错误的,但 LINQ 通常不一定在你看来是“错误的”。特别是,这里的 OP 遵循通用模式在 foreach 中获取索引值,这非常好。