【问题标题】:get the name of model and title of another model in view获取视图中另一个模型的模型名称和标题
【发布时间】:2016-02-13 18:13:04
【问题描述】:

我想在局部视图中获取模型类型的名称和模型列表的标题,但 @genre.Lists.Title 不起作用 这是我的流派模型

  public class Genre
{
    public int GenreId { get; set; }
    public string Name { get; set; }
    public string Description { get; set; }
    public List<List> Lists { get; set; }
}

这是我的列表模型

 [Bind(Exclude = "ListId")]
public class List
{
    [ScaffoldColumn(false)]
    public int ListId { get; set; }
    [DisplayName("Genre")]
    public int GenreId { get; set; }
    [DisplayName("Maker")]
    public int MakerId { get; set; }
    [Required(ErrorMessage = "An List Title is required")]
    [StringLength(160)]
    public string Title { get; set; }
    [Required(ErrorMessage = "Price is required")]
    [Range(0.01, 100.00,ErrorMessage = "Price must be between 0.01 and 100.00")]
    public decimal Price { get; set; }
    [DisplayName("List URL")]
    [StringLength(1024)]
    public string ListUrl { get; set; }
    public Genre Genre { get; set; }
    public Maker Maker { get; set; }
    public virtual List<OrderDetail> OrderDetails { get; set; }
}

这是我的 actionResult

  public ActionResult Navbar()
    {

        var genres = storeDB.Genres.Include("Lists").ToList();



        return PartialView("Navbar",genres);
    }

这是我的部分视图

    @model IEnumerable<Store.Models.Genre>
    @foreach (var genre in Model)
    {
        @genre.Name
        @genre.Lists.Title
    }

【问题讨论】:

    标签: asp.net-mvc entity-framework


    【解决方案1】:

    @genre.Lists 的类型是 List&lt;List&gt;,而不是 List(顺便说一下,我会以某种方式重命名您的类,这很容易与该名称的标准库类混淆)。

    因此,您要么需要另一个 foreach 循环来迭代 @genre.Lists,要么您可以使用 @genre.Lists[0].Title 获取第一个元素。这取决于您实际想要实现的目标。例如,您可以使用string.Join:

    @model IEnumerable<Store.Models.Genre>
    @foreach (var genre in Model)
    {
        <text>
            @genre.Name
            @string.Join(", ", genre.Lists.Select(x => x.Title))
        </text>
    }
    

    或者写一些真正的 HTML。同样,这取决于您希望输出是什么。

    【讨论】:

    • &lt;text&gt; 标签根本不是必需的,但它看起来不太好 - 将值放在表中会更合适
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-09
    • 1970-01-01
    • 1970-01-01
    • 2013-11-06
    • 1970-01-01
    相关资源
    最近更新 更多