如何通过从控制器中的模型中选择来显示值 ASP MVC

How to display value by selecting from model in the controller ASP MVC

我想通过 select 从模型中显示名称并通过控制器中的 Viewbag 将其传递到剃须刀页面。

控制器

public IActionResult sheet()
    {
        var tp1 = _db.Topic.Where(t => t.sheet_id == 1).ToList();
        var tp1name = tp1.Select(t => t.topic1name);
        ViewBag.tp1name = tp1name;
        return View();
    }

型号

public class Topic
{
    [Key]
    public int topic_id { get; set; }
    [Required]
    public int sheet_id { get; set; }
    [Required]
    public string topic1name { get; set; }
    [Required]
    public string topic2name { get; set; }
}
public class Transaction
{
    [Key]
    public int id { get; set; }
    [Required]
    public int sheet_id { get; set; }
    [Required]
    public string topic1score { get; set; }
}

查看页面

@model transaction
<table class="table">
 <tr>
    <td rowspan="2">1</td>
    <td rowspan="2">@ViewBag.tp1name</td>
    <td rowspan="2">30</td>
    <td>Below average</td>
    <td>Average</td>
    <td>Above average</td>
  </tr>

它returns System.Linq.Enumerable+SelectListIterator`2[UserLoginApp.Models.Topic,System.String] 在视图页面中而不是 topic1name

tp1 是一个主题列表。
因此,当您执行 select 时,它会为 tp1 中的每个项目创建一个新的 Enumerable en,它 select 是 topic1name.

的值

从而创建一个Enumerable+SelectListIterator

我想你想要一件商品的价值:

    var tp1 = _db.Topic.FirstOrDefault(t => t.sheet_id == 1)
    if(tp1 != null)
         ViewBag.tp1name = tp1.topic1name;