如何从模型中只返回一个元素?

本文关键字:一个 元素 返回 模型 | 更新日期: 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;
}