Jak wyświetlić ilość rekordów z tabeli w projekcie mvc

0

Witam,

Chciałbym wyświetlić na stronie głównej ilość osób w systemie (z tabeli osoby). Np "Osób w systemie: 129"
Chodzi o to, że muszę mieć info, ile osób jest w bazie danych.
Projekt asp.net mvc.
Aktualnie nie otrzymuję żadnej wartości w "Osób w systemie:"

Kontroler Osoba:

using System;
using System.Collections.Generic;
using System.Data;
using System.Data.Entity;
using System.Linq;
using System.Net;
using System.Web;
using System.Web.Mvc;
using Kadry.Models;

namespace Kadry.Controllers
{
    public class OsobaController : Controller
    {
        private BazaEntities db = new BazaEntities();

        // GET: Osoba

       
         public ActionResult Index()
        {
           
            var osoba = db.Osoba.Include(o => o.tytul);
            ViewBag.OsobaCount = db.Osoba.Count();
            return View(osoba.ToList());
            }

Widok:

@model IEnumerable<Kadry.Models.Wykaz>  

@{

    ViewBag.Title = "Home Page";
}


 <div id="raport" class="col-sm-2">

       Osób w systemie: @ViewBag.OsobaCount


    </div>
1

Najprościej to zrób w widoku po prostu

Osób w systemie: @Model.Count()

Dwa, Viewbag jest fajny bo można wrzucać tam wszystko i w ogóle, ale raczej używaj Viewmodeli.

0
kzkzg napisał(a):

Najprościej to zrób w widoku po prostu

Osób w systemie: @Model.Count()

Dwa, Viewbag jest fajny bo można wrzucać tam wszystko i w ogóle, ale raczej używaj Viewmodeli.

Czyli jak rozumiem muszę jeszcze utworzyć klasę Viewmodel.
Zapis @Model.Count() działa tylko na stronie widoku osoby. W widoku na stronie Home jest wartość zerowa i błąd.

0

W tym widoku w kontrolerze Osoba wysyłasz jako model kolekcję, więc naturalnie, że zadziała Tobie metoda Count() na kolekcji liście. W przypadku innych widoków nie wysyłasz nic jako model, zwracasz pusty w metodzie akcji.

0
mariano901229 napisał(a):

W tym widoku w kontrolerze Osoba wysyłasz jako model kolekcję, więc naturalnie, że zadziała Tobie metoda Count() na kolekcji liście. W przypadku innych widoków nie wysyłasz nic jako model, zwracasz pusty w metodzie akcji.

No właśnie w wielu widokach działa tak jak trzeba (w widoku osoba zwraca poprawną ilość osób), ale mam problem jak to obsłużyć w widoku Home?

0

Funkcja @Model.Count() działa, ale tylko w widoku Osoba (tam gdzie bezpośrednio wyświetlam listę osób).
Ja natomiast potrzebuję wyświetlić liczbę osób w systemie na stronie głównej w widoku Home/index.cshtml.

Tak wygląda aktualnie Controller Home:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using Baza.Models;

namespace Baza.Controllers
{

    public class HomeController : Controller
    {
       
            public ActionResult Index()
            {

                return View();
            }

1 użytkowników online, w tym zalogowanych: 0, gości: 1