我怎么能在这个视图中添加第二个模型?

时间:2018-01-11 11:04:47

标签: c# asp.net-mvc

添加我的代码 我想在我的视图中添加第二个模型,我不知道我该怎么做。我使用pagedList i第一个模型。  添加我的代码 我想在我的视图中添加第二个模型,我不知道我该怎么做。我使用pagedList i第一个模型。  添加我的代码 我想在我的视图中添加第二个模型,我不知道我该怎么做。我使用pagedList i第一个模型。  添加我的代码 我想在我的视图中添加第二个模型,我不知道我该怎么做。我使用pagedList i第一个模型。  添加我的代码 我想在我的视图中添加第二个模型,我不知道我该怎么做。我使用pagedList i第一个模型。

视图:

@model PagedList.IPagedList<ForumIT.ViewModels.Lista>
@using ForumIT;
@using PagedList.Mvc;
@{
ViewBag.Title = "Materiały";
}

<div class="jumbotron">
<h1>Forum Dyskusyjne IT</h1><br />
<p class="lead">Forum poświęcone jest szeroko rozwiniętej dziedzinie   informatyki. Przedstaw swój problem w temacie i przedyskutuj go z dużym gronem użytkowników służących pomocą</p>
 </div><br /><br />
<div class="row">


<div class="col-md-8">
    <div class="panel panel-default">
        <div class="panel-heading"><h3>Tematy</h3></div>
    </div>
    <div class=" panel panel-default" style="padding: 10px">



        <hr />
        @foreach (var item in Model)
        {

            <div class="media">

                <div class="media-left" style="padding-right: 30px">
                    <img class="media-object img-circle"
                         src="~/Graphics/Users/@((item.Foto!=null)?@item.Foto:"user.png")"
                         alt="zdjęcie"
                         width="64">
                    <h6><b>@item.Autor</b></h6>
                </div>
                <div class="media-body">

                    <h4 class="media-heading">
                        <a title="Czytaj" href="@Url.Action("Details",  "Temat", new { id = item.IdTematu })">
                            <h1 style="margin-top: 0px">@item.Tytul</h1>
                        </a>
                    </h4>
                    <p style="max-width: 600px; max-height: 95px">@item.Tresc</p>

                </div>
            </div>
            <hr />


        }
    </div>
    <div class="row">
        Strona @(Model.PageCount < Model.PageNumber ? 0 :      Model.PageNumber) z @Model.PageCount
        <div class="pull-right">
            @Html.PagedListPager(Model, Page => Url.Action("Index", new { strona = Page }))
        </div>
    </div>
 </div>
    <div class="col-md-4">
        <div class="list-group">
            <div class="panel panel-default">
                <div class="panel-heading"><h3>Kategorie</h3></div>
            </div>

            <a href="~/Home/index">
                <button type="button" class="list-group-item">Wszystkie Kategorie</button>
            </a>

            @foreach (var item in Model)
            {
                <a href="~/Home/index/2">
                    <button type="button" class="list-group- item">@item.NazwaKategorii</button>
            </a>
            }
        </div>

    </div>
 </div>

控制器:

using ForumIT.Models;
using ForumIT.ViewModels;
 using PagedList;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;

namespace ForumIT.Controllers
 {
public class HomeController : Controller
{
    private ForumContext db = new ForumContext();

    public ActionResult Index(int? id = 0, int? rozmiar = 5, int? strona = 1)
    {
        IQueryable<Lista> lista = from t in db.Tematy
                                  orderby t.DataDodania descending
                                  select new Lista()
                                  {
                                      IdTematu = t.IdTematu,
                                      Tytul = t.Tytul,
                                      Tresc = t.Tresc,
                                      Autor = t.Uzytkownik.Imie + " " + t.Uzytkownik.Nazwisko,
                                      Foto = t.Uzytkownik.Foto,
                                      IdKategorii = t.IdKategorii
                                  };
        IQueryable<Lista> lista2 = from k in db.Kategorie
                                   select new Lista()
                                   {
                                       NazwaKategorii = k.NazwaKategorii,
                                       Ikona = k.Ikona,
                                       IdKategoriiK = k.IdKategorii
                                   };
        if (id != 0)
        {
            lista = lista.Where(l => l.IdKategorii == id);
        }
        return View(lista.ToPagedList((int)strona, (int)rozmiar));

    }

我添加了class lista

namespace ForumIT.ViewModels
{
public class Lista
{
    public int IdTematu { get; set; }
    public string Tytul { get; set; }
    public string Tresc { get; set; }
    public string Autor { get; set; }
    public string Foto { get; set; }
    public int IdKategorii { get; set; }

    public string NazwaKategorii { get; set; }
    public string Ikona { get; set; }
    public int IdKategoriiK { get; set; }
  }
  }

2 个答案:

答案 0 :(得分:0)

添加其他视图模型,例如

public class MyViewModel
{
    public PagedList.IPagedList<ForumIT.ViewModels.Lista> PagedList { get; set; }
    public Models.SecondModel SecondModel { get; set; }
}

然后您可以将包含MyViewModelPagedList的{​​{1}}传递到视图

SecondModel

在视图中你会写一些类似

的内容
return View(new MyViewModel {PagedList = lista.ToPagedList((int)strona, (int)rozmiar),
  SecondModel = new SecondModel()};

答案 1 :(得分:0)

您应该将列表合并到模型类中;

var indexModel = new IndexModel()
{
    ListA = lista,
    ListB = listb
};
return View(indexModel);

指数模型;

public class IndexModel
{
    public PagedList.IPagedList<ForumIT.ViewModels.Lista> ListA { get; set; }

    public PagedList.IPagedList<ForumIT.ViewModels.Lista> ListB { get; set; }
}

然后更改视图模型;

@model IndexModel