• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Dlaczego button nie dodaje nic do bazy i nie tworzy nowego Reviewer

Object Storage Arubacloud
0 głosów
82 wizyt
pytanie zadane 4 stycznia 2023 w C# przez chrystian Gaduła (4,780 p.)
edycja 5 stycznia 2023 przez chrystian

Chciałbym towrzyć nowego Reviewera za pomocą przycisku w /Reviewers. Ale po uzupełnieniu formularza w //Reviewers/Create  i kliknięciu nic się nie dzieje. Nie wraca do  /Reviewers ani nie dodaje nowego Reviewera w Bazie danych

Index:

<div style="position:fixed;right:100px;bottom:100px" class="text-white">
    <a asp-controller="Reviewers" asp-action="Create" class="btn btn-success"><i class="bi bi-plus-circle">Add New</i></a></div>

/Reviewers/Create

@*Model*@
@model Reviewer

@*ViewData*@
@{
	ViewData["Title"] = "Create a new Reviewer";
}
<div class="row text">
	  <div class="col-md-8 offset-2">
<p>
	<h1>Add a new Reviewer</h1>


</p>
<div class="row">

	<div class="col-md-8 offset-2">
		<form asp-action="Create">
			<div asp-validation-summary="ModelOnly" class="text-danger"></div>
				<div class="form-group text-center">

			<img class="border-info rounded-circle" style="max-width:150px" id="ProfilePicturePreview"/>

		</div>
		<div class="form-group">
			<label asp-for="ProfilePicture" class="control-label"></label>
			<input asp-for="ProfilePicture" class="form-control" />
<span asp-validation-for="ProfilePicture" class="text-danger"></span>
		</div>
				<div class="form-group">
			<label asp-for="FullName" class="control-label"></label>
			<input asp-for="FullName" class="form-control" />
<span asp-validation-for="FullName" class="text-danger"></span>
		</div>
				<div class="form-group">
			<label asp-for="Note" class="control-label"></label>
			<input asp-for="Note" class="form-control" />
<span asp-validation-for="Note" class="text-danger"></span>
		</div>
		<div class="form-group">
			<input type="submit" value="Create" class="btn btn-outline-success float-right" />
			<a class="btn btn-outline-danger" asp-action="Index" asp-controller="ReviewersController">Back</a>

		</div>
	

		</form>
	
</div>
</div>
</div>

</div>

@section Scripts{
	<script>
	  $(document).ready(function () {
            var output = document.getElementById('ProfilePicturePreview');
            output.src = $("#ProfilePicture").val();
        })
		 $("#ProfilePicture").on("change", function () {
            var output = document.getElementById('ProfilePicturePreview');
            output.src = $(this).val();
        })
		
	</script>
}

reviewersController 

using Microsoft.AspNetCore.Mvc;

using Project_ASPNET_14040.Data.Services;
using Project_ASPNET_14040.Models;

namespace Project_ASPNET_14040.Controllers
{
    public class ReviewersController : Controller
    {
        private readonly IReviewersService _service;

        public ReviewersController(IReviewersService service)
        {
            _service = service;
        }

        public async Task<IActionResult> Index()
        {
            var data = await _service.GetAllAsync();

            return View(data);
        }

        //Get request Reviewers/Create
        public IActionResult Create()
        {
            return View();
        }
        [HttpPost]
        public async Task<IActionResult> Create([Bind("FullName", "ProfilePicture", "Note")]Reviewer reviewer)
        {
            if (!ModelState.IsValid)
            {
                return View(reviewer);
            }
           await _service.AddAsync(reviewer);
            return RedirectToAction(nameof(Index));
       
        }
        //Get : Reviwers/Details/id
    public async Task<IActionResult> Details(int id)
        {
            var reviewerDetail = await _service.GetByIdAsync(id);
            if(reviewerDetail == null)
            {
                return View("NotFound");
            }
            return View(reviewerDetail);
        }
        //Get: Reviewers/Edit
        
        public async Task<IActionResult> Edit(int id)
        {
            var reviewerDetail = await _service.GetByIdAsync(id);
            if (reviewerDetail == null)
            {
                return View("NotFound");
            }
            return View(reviewerDetail);
            
        }
        [HttpPost]
        public async Task<IActionResult> Edit(int id, [Bind("Id","FullName", "ProfilePicture", "Note")] Reviewer reviewer)
        {
            if (!ModelState.IsValid)
            {
                return View(reviewer);
            }
            await _service.UpdateAsync(id,reviewer);
            return RedirectToAction(nameof(Index));

        }
    }
   
}

IReviewerService 

using Project_ASPNET_14040.Models;

namespace Project_ASPNET_14040.Data.Services
{
    public interface IReviewersService
    {
        Task<IEnumerable<Reviewer>> GetAllAsync();

        Task<Reviewer> GetByIdAsync(int id);

        Task AddAsync(Reviewer reviewer);

        Task<Reviewer> UpdateAsync(int id, Reviewer newReviewer);

        void Delete(int id);
    }
}

ReviewerService

using Microsoft.EntityFrameworkCore;
using Project_ASPNET_14040.Models;

namespace Project_ASPNET_14040.Data.Services
{
    public class ReviewersService : IReviewersService
    {
        private readonly BookStoreDbContext _context;

        public ReviewersService(BookStoreDbContext context)
        {
            _context = context;
        }

        public async Task AddAsync(Reviewer reviewer)
        {
            await _context.Reviewers.AddAsync(reviewer);
           await _context.SaveChangesAsync();
        }

        public void Delete(int id)
        {
            throw new NotImplementedException();
        }

        public async Task<IEnumerable<Reviewer>> GetAllAsync()
        {
            var result = await _context.Reviewers.ToListAsync();
            return result;
        }

        public async Task<Reviewer> GetByIdAsync(int id)
        {
            var result = await _context.Reviewers.FirstOrDefaultAsync(r => r.Id == id);     
        return result;
        }

        public async Task<Reviewer> UpdateAsync(int id, Reviewer newReviewer)
        {
            _context.Update(newReviewer);
            await _context.SaveChangesAsync();
            return newReviewer;
        }
    }
}


Link do github

komentarz 4 stycznia 2023 przez Wiciorny Ekspert (269,590 p.)
komentarz 5 stycznia 2023 przez chrystian Gaduła (4,780 p.)

@chrystian, Zauważyłem że controller obsługuje tylko jeden warunek isValid

Zaloguj lub zarejestruj się, aby odpowiedzieć na to pytanie.

Podobne pytania

0 głosów
2 odpowiedzi 199 wizyt
pytanie zadane 5 grudnia 2017 w C# przez rayman22 Użytkownik (710 p.)
0 głosów
2 odpowiedzi 287 wizyt
pytanie zadane 29 listopada 2015 w PHP przez Widemo Użytkownik (920 p.)
0 głosów
1 odpowiedź 346 wizyt
pytanie zadane 29 października 2019 w C# przez JakSky Stary wyjadacz (14,770 p.)

92,539 zapytań

141,382 odpowiedzi

319,478 komentarzy

61,928 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...