Asp Dotnet MVC ile bir kütüphane sitesi yapıyorum ve AddBookPage.cshtml de girdiğim kaçıncı sayfa sayısı ve içeriğe göre BookDetailste kitabın içeriğini göstersin istiyorum fakat AddBookPage methodu çalışmıyor ve nedenini anlamıyorum. Güncel kodlar;
HomeController.cs
C#:
public IActionResult BookDetails(int id)
{
var book = _context.Kitaplar
.Include(b => b.Category)
.Include(b => b.Pages)
.FirstOrDefault(b => b.Id == id);
if (book == null)
return NotFound();
return View(book);
}
[HttpGet]
public IActionResult AddBookPage(int bookId)
{
var page = new BookPageModel
{
BookModelId = bookId
};
return View(page);
}
[HttpPost]
public IActionResult AddBookPage(BookPageModel page)
{
if (!ModelState.IsValid)
{
return View(page);
}
if (page.BookModelId == 0)
{
ModelState.AddModelError("", "Kitap ID bulunamadı.");
return View(page);
}
_context.BookPages.Add(page);
_context.SaveChanges();
return RedirectToAction("BookDetails", new { id = page.BookModelId });
}
public class BookModel
{
public int Id { get; set; }
public string Title { get; set; } = "";
public string Author { get; set; } = "";
public int CategoryId { get; set; }
public CategoryModel? Category { get; set; }
public int PageCount { get; set; }
public int CreatedByUserId { get; set; }
public UserModel? CreatedByUser { get; set; }
public byte[]? CoverImage { get; set; }
public ICollection<BookPageModel> Pages { get; set; } = new List<BookPageModel>();
}
BookPageModel.cs
C#:
public class BookPageModel
{
public int Id { get; set; }
public int BookModelId { get; set; }
public BookModel? BookModel { get; set; }
public int PageNumber { get; set; }
public string Content { get; set; } = string.Empty;
}
}
Tam anlamamış olabilirim demek istediğini ama Layout. Cshtml e yazarsan her view için otomatik import ediliyor bu, her view için ayrı navbar oluşturuyorsan
Hocam bilmiyorum ya su an bayağı batırdım, dedim madem layoutta yazabiliyorum orada yazayım. Orada yaptım ama bu sefer her pagede olacak diye giriş yapamadan sayfaya gidememe yaptım şimdi giriş yapınca da sayfalara gidilmiyor.
Hocam bilmiyorum ya su an bayağı batırdım, dedim madem layoutta yazabiliyorum orada yazayım. Orada yaptım ama bu sefer her pagede olacak diye giriş yapamadan sayfaya gidememe yaptım şimdi giriş yapınca da sayfalara gidilmiyor.
Gidilmesini istemediğim sayfanın controllerinin içine
C#:
var currentUserId = HttpContext.Session.GetInt32("UserId");
if (!currentUserId.HasValue)
{
TempData["Error"] = "Lütfen giriş yapın.";
return RedirectToAction("Login");
}
var currentUserId = HttpContext.Session.GetInt32("UserId");
if (!currentUserId.HasValue)
{
TempData["Error"] = "Lütfen giriş yapın.";
return RedirectToAction("Login");
}
Hocam CTRL Z, CTRL Y derken bütün kodlar girdi birbirine su an öncesi sonrası ne belli olmadığından MainMenu haric hiçbir yer açılmıyor, controllerlarda ve returnlerde baya saçmalık yarattım. Güncel halini atayım mı isterseniz?
Hocam CTRL Z, CTRL Y derken bütün kodlar girdi birbirine su an öncesi sonrası ne belli olmadığından MainMenu haric hiçbir yer açılmıyor, controllerlarda ve returnlerde baya saçmalık yarattım. Güncel halini atayım mı isterseniz?
Bekliyorum sizi, kafanıza bir şey takılır ise sorabilirsiniz birkaç işlem daha eklemiştim çünkü. Bir de demeyi unutmuşum, belli olmuyor ama üç çizgi burada.
Bekliyorum sizi, kafanıza bir şey takılır ise sorabilirsiniz birkaç işlem daha eklemiştim çünkü. Eki Görüntüle 2494857 Bir de demeyi unutmuşum, belli olmuyor ama üç çizgi burada.
En önemli hatan layout da model belirtmen mesela layout da user modeli import etmişsin başka bir viewde örneğin book modeli import edeceğin zaman hata verir. İlla Layout'ta dinamik veri işleyeceksen bunu View Component'lerle yapman gerekir.
ek: Yerinde olsam youtubeden baştan sona nasıl mvc projesi yapılır ona bakardım, şu anki haliyle herşey karmakarışık mvc nin amacı zaten bu karmaşıklığı en aza indirmek