如何从模型中只返回一个元素?
本文关键字:一个 元素 返回 模型 | 更新日期: 2023-09-27 18:05:02
我有:
@model IEnumerable<SharpTrivia.Controllers.Questions>
@foreach (var item in Model) {
<tr>
<td>
@Html.DisplayFor(modelItem => item.question)
</td>
它可以很好地返回所有问题我怎样只退一件东西?说那个where item。id = = 1 ?
我不能让建议的解决方案工作,也许是因为我不清楚我使用的是哪种模型。我更新了我的问题以提供更多的细节。
模型:
namespace SharpTrivia.Controllers
{
using System;
using System.Data.Entity;
using System.ComponentModel.DataAnnotations.Schema;
using System.Linq;
public partial class TriviaModel : DbContext
{
public TriviaModel()
: base("name=TriviaM")
{
}
public virtual DbSet<Questions> Questions { get; set; }
public virtual DbSet<Answer> Answer { get; set; }
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<Questions>()
.Property(e => e.question)
.IsUnicode(false);
modelBuilder.Entity<Questions>()
.Property(e => e.coranswer)
.IsUnicode(false);
modelBuilder.Entity<Answer>()
.Property(e => e.answera)
.IsUnicode(false);
modelBuilder.Entity<Answer>()
.Property(e => e.answerb)
.IsUnicode(false);
modelBuilder.Entity<Answer>()
.Property(e => e.answerc)
.IsUnicode(false);
modelBuilder.Entity<Answer>()
.Property(e => e.answerd)
.IsUnicode(false);
}
}
}
namespace SharpTrivia.Controllers
{
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using System.Data.Entity.Spatial;
public partial class Questions
{
public int id { get; set; }
[Required]
[StringLength(500)]
public string question { get; set; }
[Required]
[StringLength(50)]
public string coranswer { get; set; }
}
}
如果您知道只有一个元素,则使用
@Html.DisplayFor(i => Model.Single(m => m.Id == 1).question)
否则你应该使用
var item = Model.FirstOrDefault(m => m.Id == 1);
并检查item是否为null
@if (item != null)
{
@Html.DisplayFor(i => item.question)
}
不建议仅对一个条目使用foreach。可以使用Break循环一次,如下所示:
@foreach (var item in Model)
{
//Your code block
break;
}