using System.ComponentModel.DataAnnotations;
public class ProfilDuzenle:ProfilTemel
{
[Required]
public string Id { get; set; }
}
Öncelikle Ad,Soyad,OkulNumarasi alanları sahip ProfilTemel sınıfı üzerine Id alanını ekleyerek ProfilDuzenle sınıfını oluşturuyoruz.
HesapController.cs dosyasına aşağıdaki kodları ekliyoruz. Profil actionu ile ProfilDuzenle modelini doldurup view içine gönderiyoruz.
[Authorize]
public async Task<IActionResult> Profil()
{
ProfilDuzenle m = new ProfilDuzenle();
//giriş yapan kullanıcı adı alınıyor
string aktifKullaniciAdi = User.Identity.Name;
//kullanıcının bütün bilgileri db den alınıyor
var kullanici = await userManager.FindByNameAsync(aktifKullaniciAdi);
//model alanları dolduruluyor
m.Ad = kullanici.Ad;
m.Soyad = kullanici.Soyad;
m.OkulNumarasi = kullanici.OkulNumarasi;
m.Id = kullanici.Id;
return View(m);
}



HesapController.cs dosyasına aşağıdaki kodları ekliyoruz.
@model ProfilDuzenle
@{
ViewData["Title"] = "Profilimi düzenle";
}
<h1 class="text-center">Profil düzenle</h1>
<form method="post" asp-antiforgery="true">
<input asp-for="Id" type="hidden" />
<div asp-validation-summary="All" class="text-danger"></div>
<div class="row mb-3">
<div class="col-3">
<label asp-for="Ad" class="label-control"></label>
</div>
<div class="col-9">
<input asp-for="Ad" class="form-control">
<span asp-validation-for="Ad" class="text-danger"></span>
</div>
</div>
<div class="row mb-3">
<div class="col-3">
<label asp-for="Soyad" class="label-control"></label>
</div>
<div class="col-9">
<input asp-for="Soyad" class="form-control">
<span asp-validation-for="Soyad" class="text-danger"></span>
</div>
</div>
<div class="row mb-3">
<div class="col-3">
<label asp-for="OkulNumarasi" class="label-control"></label>
</div>
<div class="col-9">
<input asp-for="OkulNumarasi" class="form-control">
<span asp-validation-for="OkulNumarasi" class="text-danger"></span>
</div>
</div>
<div class="row">
<div class="col-3"></div>
<div class="col-9">
<button type="submit" class="btn btn-success">Güncelle</button>
<button type="reset" class="btn btn-danger">Sıfırla</button>
</div>
</div>
</form>
@section Scripts{
<partial name="_ValidationScriptsPartial" />
}
Profil sayfasında yapılan değişiklikleri aşağıdaki action ile işliyoruz
HesapController.cs dosyasına aşağıdaki kodları ekliyoruz.
[HttpPost]
[Authorize]
[ValidateAntiForgeryToken]
public async Task<IActionResult> Profil(ProfilDuzenle m)
{
if (ModelState.IsValid)
{
var kullanici = await userManager.FindByIdAsync(m.Id);
kullanici.Ad = m.Ad;
kullanici.Soyad = m.Soyad;
kullanici.OkulNumarasi = m.OkulNumarasi;
await userManager.UpdateAsync(kullanici);
return View(@"Views\Shared\_basarili.cshtml", "Profiliniz başarıyla güncellendi");
}
return View(m);
}
