[Arabic] CRUD Operations In ASP.Net 5 (Core/MVC) - 10.Save New Item (Movie) to Database - Part1

preview_player
Показать описание
Рекомендации по теме
Комментарии
Автор

ما شاء الله عليك يا استاذ
صدقا أروع الدورات هي اللي بشوفها عند حضرتك
كتب الله أجرك إن شاء الله

jafa
Автор

ربنا يجزيك كل خير .. بجد والله انت عالمى

jorysoft
Автор

بارك الله فيك يا هندسة و ربنا يزيدك علم انى احبك فى الله

wolfdesign
Автор

value="@(Model.Year > 0 ? Model.Year : string.Empty)" مش راضى يعمل دى عشان بحط
int وهو year ف ال string

yasminelsady
Автор

بشمهندس احنا جزئية repopulate Genres دى عملناها علشان احنا بعتنا فى اول خطوه مع الviewModel بعتنا الGenres
وعملنالها Rendring فى الview تمام كده !
بس لما دوسنا على Submit(save) كده بعتنا ريكويست تانى ودخلت على الCreate Method برضه بس المره دى اللى من نوع HttpPost فلما هيدخل لبلوك الميثود هيكون جايله الViewModel مبعوتاله من الفيو كParameter اللى هيا الداتا اللى اليوزر دخلها او اختارها صح كده بس هو بيدى ان Genres ب Null او بنحتاج نعمل Repopulate فى البلوك بتاع InvalidState
لان الداتا اللى مبعوته كبرامتر للميثود مبتكونش عارفه منين اصلا الDropDownlist Source صح كده ؟ انا فاهم السيناريو اللى تم كله كده صح يا هندسة ولا ايه لانى يمكن دى اول مره تقابلنى الجزئية دى كنا بنبعت الاوبجيكت كامل للفيو مره واحده مش نفس الطريقة اللى حضرتك عملت بيها وانك تعمل Initialize Object وتبتعتله الGenres بس !
احنا بنعمل Repopulate لل DropDownList بس فى حالة الايرور علشان الfield source بترجع Null ??
فهل انا فاهم كده صح ولا فيه لبس فى جزئية معينة ؟

elsayedhosny
Автор

شرح كافي و وافي ... واجهتني مشكلة انه مش بيقبل double ولا decimal يعني ( نقطة . ولا فاصلة, ) فقط عدد صحيح في الفورم عند submit مع اني بحثت عن المشكلة(/JQuery validation) و عدلت ال regex لكن برضو مابيشتغلش . وشكرا مقدما

ninib
Автор

واحنا فين يا هندسة قلنا ان الPoster هيبقى جاى ب Null وان الGenreId هيبقى جاى بNull
فين الجزئية اللى معرفين فيها الكلام ده ؟ تقصد بيها فى الModel نفسها لما مديناش ليهم Required ؟

elsayedhosny
Автор

يا بشمهندس
عندي لما بعمل Debug
في الجزء الي بنتيست فيه ال ModelState
بيطلع عندي ModelState ب False و الايرور كاونت ب 2 ايرور و للاسف الصوره مبتروحش معايا في ال Post علي طول ب Null مع اني عامل زي حضرتك بظبط


و دا كود ال View, Controller

<section class="row justify-content-between">
<div class="col-md-5">
<form method="post" enctype="multipart/form-data" asp-action="Create">
<div class="form-group">
<label asp-for="Title"></label>
<input type="text" class="form-control" asp-for="Title" maxlength="250" />
<span asp-validation-for="Title" class="text-danger"></span>
</div>
<br />
<div class="form-group">
<label asp-for="GenreId"></label>
<select class="form-control" asp-for="GenreId" asp-items="@(new SelectList(Model.GenresList, "Id", "Name"))">
<option></option>
</select>
<span asp-validation-for="GenreId" class="text-danger"></span>
</div>
<br />
<div class="form-group w-25">
<label asp-for="Year"></label>
<input type="number" class="form-control" asp-for="Year" value="@(Model.Year>0 ? Model.Year : string.Empty)" />
<span asp-validation-for="Year" class="text-danger"></span>
</div>
<br />
<div class="form-group w-25">
<label asp-for="Rate"></label>
<input type="number" class="form-control" asp-for="Rate" value="@(Model.Rate>0 ? Model.Rate : string.Empty)" />
<span asp-validation-for="Rate" class="text-danger"></span>
</div>
<br />
<div class="form-group">
<label asp-for="StoryLine"></label>
<textarea type="text" class="form-control" asp-for="StoryLine" rows="6" maxlength="2500"></textarea>
<span class="text-danger"></span>
</div>
<br />
<div class="custom-file">
<input type="file" class="custom-file-input" asp-for="Poster" accept="image/*" />
<label class="custom-file-label" asp-for="Poster"></label>
<span asp-validation-for="Poster" class="text-danger"></span>
</div>
<br />
<button type="submit" class="btn btn-primary mt-3">
<i class="bi bi-check"></i>
Save
</button>
<a asp-action="Index" class="btn btn-secondary mt-3">
<i class="bi bi-x"></i>
Cancel
</a>
</form>
</div>
<div class="col-md-6">
<div id="poster-container" class="d-none">
<img src="" alt="Poster Image" class="img-thumbnail" />
</div>
</div>
</section>



كود ال Controller

namespace MoviesWebsite.Controllers
{
public class MoviesController : Controller
{
private readonly ApplicationDbContext _Context;
public context)
{
_Context = context;
}

public async Task<IActionResult> Index()
{
var movies = await
return View(movies);
}
public async Task<IActionResult> Create()
{
var ViewModels = new MovieFormViewModel
{
GenresList = await
};
return View(ViewModels);
}

[HttpPost]
[ValidateAntiForgeryToken]
public async Task<IActionResult> Create(MovieFormViewModel mymodel)
{

mymodel.GenresList = await

return View(mymodel);
}
}
}

omarsoliman
Автор

الله يجزيك كل خير ... واجهتني مشكلة هي أنو مش بيدخل على الاكشن ما فهمت السبب ليه ؟ ممكن حضرتك تساعدني

esmaelisa
Автор

بشمهندس معلش لية بردو رغم انى ماشى معاك بالظبط بردو بيرجعلى The Select Poster... field is required.
مش "Please Select Movie Poster

jorysoft
Автор

دة الكود كوبى من الدرس الثامن لانى على الموبايل الان

تقصد هيكون فين فى الفورم معلش يا هندسة



@model MovieFormViewMolel

@{
ViewData["title"] = "Movie Form";
}

<h2>Create Movie</h2>

<hr />

<section class="row justify-content-between">
<div class="col-md-4">
<form method="post" asp-action="Create">

<div class="form-group">
<label class="text-muted" asp-for="Title"></label>
<input type="text" class="form-control" asp-for="Title" maxlength="250" />
<span asp-validation-for="Title" class="text-danger"></span>
</div>

<div class="form-group">
<label class="text-muted" asp-for="GenreId"></label>
<select class="form-control" asp-for="GenreId" asp-items="@(new SelectList(Model.Genres, "Id", "Name"))">
<option></option>
</select>
<span asp-validation-for="GenreId" class="text-danger"></span>
</div>

<div class="form-group w-50">
<label class="text-muted" asp-for="Year"></label>
<input type="number" class="form-control" asp-for="Year" value="" />
<span asp-validation-for="Year" class="text-danger"></span>
</div>

<div class="form-group w-50">
<label class="text-muted" asp-for="Rate"></label>
<input type="number" class="form-control" asp-for="Rate" value="" />
<span asp-validation-for="Rate" class="text-danger"></span>
</div>

<div class="form-group">
<label class="text-muted" asp-for="StoreLine"></label>
<textarea class="form-control" asp-for="StoreLine" maxlength="2500" rows="5"></textarea>
<span class="text-danger"></span>
</div>

<div class="custom-file">
<input type="file" class="custom-file-input" asp-for="Poster" accept=".png, .jpg" />
<label class="custom-file-label" asp-for="Poster"></label>
<span asp-validation-for="Poster" class="text-danger"></span>
</div>

<button type="submit" class="btn btn-primary mt-4">
<i class="bi bi-check"></i>
Save
</button>
<a asp-action="Index" class="btn btn-outline-secondary mt-4">
<i class="bi bi-x"></i>
Cancel
</a>
</foem>
</div>

<div class="col-md-4">
<div id="poster-container" class="d-none">
<img src="" alt="Poster" class="img-thumbnail"/>
</div>
</div>
</section>

@section Scripts {
@{ await }
<script>
$(document).ready(function () {
$('#Poster').on('change', function () {
var selectedFile =


var posterContainer = $('#poster-container');
var image =


posterContainer.find('img').attr('src', image);
});
});
</script>
}

jorysoft