C# 如何将两个模型添加到一个视图中?

C# 如何将两个模型添加到一个视图中?,c#,asp.net-mvc,asp.net-core,entity-framework-core,C#,Asp.net Mvc,Asp.net Core,Entity Framework Core,我有两个型号,一张票和一个叫评论的。我有一个一对多之间的关系票评论。我想做的是能够在一个视图中使用来自两个模型的数据。我应该能够显示来自门票和评论的数据 如您所见,我已将@model.Models.Ticket放入到Ticket的视图中,以便从Ticket到视图获取数据 @model WebApplication20.Models.Ticket @{ Layout = "_Dashboard"; var title = "About Tic

我有两个型号,一张票和一个叫评论的。我有一个一对多之间的关系票评论。我想做的是能够在一个视图中使用来自两个模型的数据。我应该能够显示来自门票和评论的数据

如您所见,我已将@model.Models.Ticket放入到Ticket的视图中,以便从Ticket到视图获取数据

@model WebApplication20.Models.Ticket



@{

    Layout = "_Dashboard";

    var title = "About Ticket";
}

<html>

<body id="page-top">



    <div class="card mx-auto" style="width: 18rem;">
        <div class="card-header">
            <h4><strong>Ticket Status</strong></h4> Created @Model.TicketCreated
        </div>
        <ul class="list-group list-group-flush">
            <li class="list-group-item"><strong>Name:</strong> </li>
            <li class="list-group-item"><strong>Descripton:</strong></li>
            <li class="list-group-item"><strong>Priority:</strong> @Model.TicketPriority</li>
            <li class="list-group-item"><strong>Type:</strong> @Model.TicketType</li>
            <li class="list-group-item"><strong>Status:</strong> @Model.TicketStatus</li>
        </ul>
    </div>

    <div class="card shadow mx-auto m-3" style="width: 18rem;">
        <div class="card-header">
            <h4><strong>Comments</strong></h4>
        </div>

        @*<div class="form-group row">
            <div class="col-4">
                <label asp-for=""></label>
            </div>
            <div class="col-8">
                <textarea asp-for=""  rows="5" style="resize:none;" class="form-control"></textarea>
                <span asp-validation-for="" class="text-danger"></span>
            </div>
        </div>*@
        
    </div>


只需创建一个新类来保存Ticket和IEnumerable列表

public class TicketWithComments
{
public Ticket Ticket {get;set;}
public IEnumerable<Comment> Comments {get;set;}
}
在你看来,你现在可以使用我们的新课程了

@model TicketWithComments
要获得票证的评论,您可以使用foreach

foreach (var comment in Model.Comments)
 {
  //show comment here.
 }

或者,您可以在视图中使用Tuple,如下所述:

只需创建一个新类来保存Ticket和IEnumerable列表

public class TicketWithComments
{
public Ticket Ticket {get;set;}
public IEnumerable<Comment> Comments {get;set;}
}
在你看来,你现在可以使用我们的新课程了

@model TicketWithComments
要获得票证的评论,您可以使用foreach

foreach (var comment in Model.Comments)
 {
  //show comment here.
 }

或者,您可以在视图中使用Tuple,如下所述:

使用
ViewBag
。i、 e
ViewBag.Ticket
。因此,在控制器中,您可以

...
Ticket obj = _db.Tickets.FirstOrDefault(t => t.Ticket_Id == id);
ViewBag.Ticket = obj;
...
Ticket obj = ViewBag.Ticket as Ticket;
然后,在视图中,您可以

...
Ticket obj = _db.Tickets.FirstOrDefault(t => t.Ticket_Id == id);
ViewBag.Ticket = obj;
...
Ticket obj = ViewBag.Ticket as Ticket;

使用
ViewBag
。i、 e
ViewBag.Ticket
。因此,在控制器中,您可以

...
Ticket obj = _db.Tickets.FirstOrDefault(t => t.Ticket_Id == id);
ViewBag.Ticket = obj;
...
Ticket obj = ViewBag.Ticket as Ticket;
然后,在视图中,您可以

...
Ticket obj = _db.Tickets.FirstOrDefault(t => t.Ticket_Id == id);
ViewBag.Ticket = obj;
...
Ticket obj = ViewBag.Ticket as Ticket;