MVC Asp - Net Core Summary Practical
MVC Asp - Net Core Summary Practical
Check null
Another
example
Cookies
You may explicitly set the ForeignKey annotation for the Collection
[ForeignKey]
attribute (this is optional
<h5>Reviews</h5>
@if (Model.Reviews.Count > 0)
{
<partial name="_PartialAllReviews" model="Model.Reviews" />
}
else
{
<p>There are no reviews for this book</p>
Get Request
Create&ADD Update&Edit Delete &Remove
[HttpGet] [HttpGet] [HttpGet]
public IActionResult Create() public IActionResult Edit(int? id) public IActionResult Delete(int? id)
{ { {
var categoriesList = new if (id == null) if (id == null)
SelectList(ctx.Categories.ToList(), "CategoryID", return BadRequest(); return BadRequest();
"CategoryName"); Book bk =ctx.Books.Find(id); Book bk =ctx.Books.Find(id);
ViewBag.CatList = categoriesList;
return View(); if (bk == null) if (bk == null)
} return NotFound(); return NotFound();
return View(bk);-> display html return View(bk);-> display html
} }
Post Request
Create&ADD Update&Edit Delete &Remove
[HttpPost] [HttpPost] [HttpPost]
public IActionResult Create(Book book) public IActionResult Upadate(Book public IActionResult Delete(Book book)
{ book) {
if (ModelState.IsValid){ {
ctx.Books.Add(book); if (ModelState.IsValid){ ctx.Books.Remove(book);
ctx.SaveChanges(); ctx.Books.Update(book); ctx.SaveChanges();
return Redirect("/Search/Detail/" + ctx.SaveChanges(); return Redirect("/Search/SearchByCategory/");
book.BookID); } return Redirect("/Search/Detail/" + }
book.BookID); }
Razor
<h1>New Book</h1> <-same change red highlight thing Kind of the same red highlight thing
<div class="row">
<div class="col-md-4">
<form enctype="multipart/form-data" asp-
controller="Book" asp-action="Create" method="post">
<div asp-validation-summary="All" class="text-
danger"></div>
<div class="form-group">
<label asp-for="CategoryID" class="control-
label"></label>
<select asp-for="CategoryID" asp-
items=ViewBag.CatList class="form-control">
<option value="">Select a category</option>
</select>
<span asp-validation-for="CategoryID" class="text-
danger"></span>
</div>
<div class="form-group">
<label asp-for="Title" class="control-label"></label>
<input asp-for="Title" class="form-control" />
<span asp-validation-for="Title" class="text-
danger"></span>
</div>
<div class="form-group">
<label asp-for="Description" class="control-
label"></label>
<textarea rows="6" cols="50" asp-for="Description"
class="form-control"></textarea>
<span asp-validation-for="Description" class="text-
danger"></span>
</div>
</form>
_PartialSearchResult.cshtml
<div class="row">
@if (Model.Count > 0) //check if the Model (list of books) has any books
{
foreach (var book in Model) // loop through each book in the model
{<div class="col-sm-3">
<div class="card" style="margin-bottom:15px; margin-top:10px">
<div class="card-header">
<h5>@book.Title</h5>
</div>
<p class="card-text">
Category: @book.Category.CategoryName
</p>
<img class="card-img-top" src=@("/images/"+book.CoverPhoto) style="width:100%;height:250px"/>
<div class="card-footer text-center">
<a asp-controller="Search" asp-action="Detail" asp-route-id=@book.BookID class="btn btn-primary">View</a>
<a asp-controller="Book" asp-action="Edit" asp-route-id=@book.BookID class="btn btn-primary">Edit</a>
<a asp-controller="Book" asp-action="Delete" asp-route-id=@book.BookID class="btn btn-danger">Delete</a>
</div>
</div>
</div>
}}
else
{ <p>No books found</p> }</div>