Как использовать несколько моделей в одном представлении asp. net ядро ​​2.2 mvc? - PullRequest
0 голосов
/ 31 марта 2020

Я пытаюсь использовать две модели в 1 представлении, обе модели возвращают разные данные, первая содержит winners list, а вторая содержит challenges. Я создал пользовательскую модель представления:

  public class CustomViewModel
{
    public IEnumerable<Challenges> challenges { get; set; }
    public IEnumerable<ChallengesWinners> challengeswinners { get; set; }
}

и контроллер ChallengesController:

public async Task<IActionResult> Index()

{

 var model = new CustomViewModel
 {
  challenges = _context.Challenges.ToListAsync(),  //showing error here red line conversion error
  challengeswinners = _context.Challenges.ToListAsync()//showing error here red line conversion error
 };

return View("Index", model);
}

, и представление содержит:

@model CustomViewModel
@{
ViewData["Title"] = "Index";
Layout = "~/Views/Shared/_LayoutChallenges.cshtml";
 }
<html>
<body>
   @foreach (var item in Model.challenges)
   {
      @Html.DisplayFor(modelItem => item.ChallengeName)
    }
   @foreach (var item in Model.challengeswinners)
   {
     @Html.DisplayFor(modelItem => item.ChallengeName)
    }

1 Ответ

2 голосов
/ 31 марта 2020

Попробуйте это:

 var model = new CustomViewModel
 {
     challenges = await _context.Challenges.ToListAsync(),  
     challengeswinners = await _context.Challenges.ToListAsync()
 };
...