Czesc, Po wejsciu na ponizszy widok wyrzuca mi NullReferenceException, dokladnie na
<img class="d-block" src="@Model.Zdjecia.ZdjecieUrl1">
Co jest nie tak w tej linijce ?
Widok:
@model Samochod
<head>
<link href="lib/bootstrap/css/bootstrap.css" rel="stylesheet" />
<link href="content/style.css" rel="stylesheet" />
<link href="https://fonts.googleapis.com/css?family=Bitter" rel="stylesheet">
</head>
<html>
<body>
<div class="container" id="detailsContainer">
<div class="row">
<div class="col-sm">
<div id="carouselExampleControls" class="carousel slide" data-interval="false" data-ride="carousel">
<ol class="carousel-indicators">
<li data-target="#carouselExampleIndicators" data-slide-to="0" class="active"></li>
<li data-target="#carouselExampleIndicators" data-slide-to="1"></li>
<li data-target="#carouselExampleIndicators" data-slide-to="2"></li>
<li data-target="#carouselExampleIndicators" data-slide-to="3"></li>
<li data-target="#carouselExampleIndicators" data-slide-to="4"></li>
<li data-target="#carouselExampleIndicators" data-slide-to="5"></li>
<li data-target="#carouselExampleIndicators" data-slide-to="6"></li>
</ol>
<div class="carousel-inner">
<div class="carousel-item active">
<img class="d-block" src="@Model.MiniaturkaUrl">
</div>
<div class="carousel-item ">
@*<img class="d-block" src="@Model.Zdjecia.ZdjecieUrl1">*@
<img class="d-block" src="@Model.Zdjecia.ZdjecieUrl1">
</div>
<div class="carousel-item ">
@*<img class="d-block" src="@Model.Zdjecia.ZdjecieUrl2">*@
<img class="d-block" src="@Model.Zdjecia.ZdjecieUrl2">
</div>
<div class="carousel-item ">
@*<img class="d-block" src="@Model.Zdjecia.ZdjecieUrl3">*@
<img class="d-block" src="@Model.MiniaturkaUrl">
</div>
<div class="carousel-item ">
@*<img class="d-block" src="@Model.Zdjecia.ZdjecieUrl4">*@
<img class="d-block" src="@Model.MiniaturkaUrl">
</div>
<div class="carousel-item ">
@*<img class="d-block" src="@Model.Zdjecia.ZdjecieUrl5">*@
<img class="d-block" src="@Model.MiniaturkaUrl">
</div>
</div>
<a class="carousel-control-prev" href="#carouselExampleControls" role="button" data-slide="prev">
<span class="carousel-control-prev-icon" aria-hidden="true"></span>
<span class="sr-only">Previous</span>
</a>
<a class="carousel-control-next" href="#carouselExampleControls" role="button" data-slide="next">
<span class="carousel-control-next-icon" aria-hidden="true"></span>
<span class="sr-only">Next</span>
</a>
</div>
</div>
<div class="col-sm">
<h1>@Model.Marka - @Model.Model</h1>
<div class="caption-full">
<h4>Rocznik: @Model.RokProdukcji</h4>
<h4>Przebieg: @Model.Przebieg</h4>
<h4>Pojemnosc: @Model.Pojemnosc</h4>
<h4>Moc: @Model.Moc</h4>
<h4>Cena: @Model.Cena zł</h4>
<h4>@Model.Opis</h4>
</div>
</div>
</div>
</div>
</body>
</html>
Modele:
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
namespace Komis.Models
{
[Table("Samochody")]
public class Samochod
{
[Key]
public int SamochodId { get; set; }
public string Marka { get; set; }
public string Model { get; set; }
public int RokProdukcji { get; set; }
public string Przebieg { get; set; }
public string Pojemnosc { get; set; }
public string RodzajPaliwa { get; set; }
public string Moc { get; set; }
public string Opis { get; set; }
public decimal Cena { get; set; }
public string ZdjecieUrl { get; set; }
public string MiniaturkaUrl { get; set; }
public bool JestSamochodemTygodnia { get; set; }
public bool JestWCentrali { get; set; }
//relacja jeden do jeden
public virtual Zdjecie Zdjecia { get; set; }
}
}
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
namespace Komis.Models
{
[Table("Zdjecia")]
public class Zdjecie
{
[Key]
public int Id { get; set; }
[ForeignKey("Samochody")]
public int SamochodId { get; set; }
public string ZdjecieUrl1 { get; set; }
public string ZdjecieUrl2 { get; set; }
public string ZdjecieUrl3 { get; set; }
public string ZdjecieUrl4 { get; set; }
public string ZdjecieUrl5 { get; set; }
// relacja jeden do jeden
public virtual Samochod Samochody { get; set; }
}
}
Kontroler:
using System.Linq;
using Komis.Models;
using Komis.ViewModels;
using Microsoft.AspNetCore.Mvc;
// For more information on enabling MVC for empty projects, visit https://go.microsoft.com/fwlink/?LinkID=397860
namespace Komis.Controllers
{
public class HomeController : Controller
{
private readonly ISamochodRepository _samochodRepository;
public HomeController(ISamochodRepository samochodRepository)
{
_samochodRepository = samochodRepository;
// _samochodRepository = new MockSamochodRepository(); Gdybysmy nie korzystali z wstrzykiwania zaleznosci
}
// GET: /<controller>/
public IActionResult Index()
{
var samochody = _samochodRepository.PobierzWszystkieSamochody().OrderBy(s => s.Marka); //Pobieramy tutaj samochody
var homeVM = new HomeVM()
{
Tytul = "Przeglad Samochodow",
Samochody = samochody.ToList()
};
return View(homeVM);
}
public IActionResult Szczegoly(int id) //Metoda do pokazywanie szczegolow auta o danym id
{
var samochod = _samochodRepository.PobierzSamochodOId(id);
if (samochod == null)
return NotFound(); //Nie znaleziono samochodu
return View(samochod);
}
}
}