ASP.NET核心使用MVC和实体框架-编辑方法不显示值
我正在使用ASP.NETCore(2.1)和MVC以及实体框架来完成我的学校作业 我试图为我的模型添加编辑,但实际上编辑视图的字段仍然为空。 我使用CSHTML中的asp-Controller、asp-action和asp-route-id命令从Admin-Controller索引视图访问这个编辑页面,以调用一个auther-controllers方法。我正在使用ViewBag在管理员控制器的索引页面上显示3个模型 Esemeny.csASP.NET核心使用MVC和实体框架-编辑方法不显示值,asp.net,asp.net-mvc,asp.net-core,asp.net-core-mvc,asp.net-core-2.1,Asp.net,Asp.net Mvc,Asp.net Core,Asp.net Core Mvc,Asp.net Core 2.1,我正在使用ASP.NETCore(2.1)和MVC以及实体框架来完成我的学校作业 我试图为我的模型添加编辑,但实际上编辑视图的字段仍然为空。 我使用CSHTML中的asp-Controller、asp-action和asp-route-id命令从Admin-Controller索引视图访问这个编辑页面,以调用一个auther-controllers方法。我正在使用ViewBag在管理员控制器的索引页面上显示3个模型 Esemeny.cs using System; using System.C
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Threading.Tasks;
namespace MVC_Boldizar.Models
{
public class Esemeny
{
[Key]
public int EsemenyID { get; set; }
public string Nev { get; set; }
public int KezdEv { get; set; }
public int VegEv { get; set; }
public string Leiras { get; set; }
}
}
AdminController.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc;
using MVC_Boldizar.Models;
namespace MVC_Boldizar.Controllers
{
public class AdminController : Controller
{
private IEsemenyRepository EsemenyRepository;
private INyelvismeretRepository NyelvismeretRepository;
private IProgramozasiIsmeretRepository ProgramozasiIsmeretRepository;
private IKapcsolatRepository KapcsolatRepository;
public AdminController(IEsemenyRepository erepo, INyelvismeretRepository nrepo, IProgramozasiIsmeretRepository prepo, IKapcsolatRepository krepo)
{
EsemenyRepository = erepo;
NyelvismeretRepository = nrepo;
ProgramozasiIsmeretRepository = prepo;
KapcsolatRepository = krepo;
}
public ActionResult Index()
{
ViewBag.Esemenyek = GetEsemenyek();
ViewBag.Nyelvismeretek = GetNyelvismeretek();
ViewBag.ProgramozasiIsmeretek = GetProgismeretek();
ViewBag.Kapcsolatok = GetKapcoslatok();
return View();
}
public IEnumerable<Nyelvismeret> GetNyelvismeretek()
{
return NyelvismeretRepository.Nyelvismeretek;
}
public IEnumerable<Esemeny> GetEsemenyek()
{
return EsemenyRepository.Esemenyek;
}
public IEnumerable<ProgramozasiIsmeret> GetProgismeretek()
{
return ProgramozasiIsmeretRepository.ProgramozasiIsmeretek;
}
public IEnumerable<Kapcsolat> GetKapcoslatok()
{
return KapcsolatRepository.Kapcsolatok;
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc;
using MVC_Boldizar.Models;
namespace MVC_Boldizar.Controllers
{
public class EsemenyController : Controller
{
private IEsemenyRepository EsemenyRepository;
private INyelvismeretRepository NyelvismeretRepository;
private IProgramozasiIsmeretRepository ProgramozasiIsmeretRepository;
public ActionResult Index()
{
ViewBag.Esemenyek = GetEsemenyek();
ViewBag.Nyelvismeretek = GetNyelvismeretek();
ViewBag.ProgramozasiIsmeretek = GetProgismeretek();
return View();
}
public EsemenyController(IEsemenyRepository erepo, INyelvismeretRepository nrepo, IProgramozasiIsmeretRepository prepo)
{
EsemenyRepository = erepo;
NyelvismeretRepository = nrepo;
ProgramozasiIsmeretRepository = prepo;
}
public IEnumerable<Nyelvismeret> GetNyelvismeretek()
{
return NyelvismeretRepository.Nyelvismeretek;
}
public IEnumerable<Esemeny> GetEsemenyek()
{
return EsemenyRepository.Esemenyek;
}
public IEnumerable<ProgramozasiIsmeret> GetProgismeretek()
{
return ProgramozasiIsmeretRepository.ProgramozasiIsmeretek;
}
public ActionResult CreateEsemeny()
{
return View();
}
public ActionResult CreaterProg()
{
return View();
}
public ActionResult CreateNyelv()
{
return View();
}
public ViewResult EditEsemeny(int esmId) => View(EsemenyRepository.Esemenyek.FirstOrDefault(esm => esm.EsemenyID == esmId));
public ViewResult EditProg(int proId) => View(ProgramozasiIsmeretRepository.ProgramozasiIsmeretek.FirstOrDefault(pro => pro.ProgramozasiIsmeretID == proId));
public ViewResult EditNyelv(int nyId) => View(NyelvismeretRepository.Nyelvismeretek.FirstOrDefault(ny => ny.NyelvismeretID == nyId));
}
}
使用系统;
使用System.Collections.Generic;
使用System.Linq;
使用System.Threading.Tasks;
使用Microsoft.AspNetCore.Mvc;
使用MVC_Boldizar.Models;
命名空间MVC_Boldizar.Controllers
{
公共类AdminController:Controller
{
私人电子储蓄;
私人储蓄存款;
私人IProgramozasismerepository计划;
私人IKapcsolatRepository KapcsolatRepository;
公共行政总监(IESEMENYREPORATION erepo、INYLEVISMERETREPORATION nrepo、IPROGRAMOZASIISMEREPORATION PREP、IKAPCSOLATREPORATION krepo)
{
EsemenyRepository=erepo;
Nyelvismerepository=nrepo;
programozasismerepository=prep;
KapcsolatRepository=krepo;
}
公共行动结果索引()
{
ViewBag.Esemenyek=GetEsemenyek();
ViewBag.Nyelvismeretek=GetNyelvismeretek();
ViewBag.programozasismeretek=GetProgismeretek();
ViewBag.Kapcsolatok=GetKapcoslatok();
返回视图();
}
公共IEnumerable GetNyelvismeretek()
{
返回nyelvismeretropository.Nyelvismeretek;
}
公共IEnumerable GetEsemenyek()
{
返回EsemenyRepository.Esemenyek;
}
公共IEnumerable GetProgismeretek()
{
返回programozasismeretropository.programozasismeretek;
}
公共IEnumerable GetKapcoslatok()
{
返回kapcsolatrespository.Kapcsolatok;
}
}
}
EsemenyController.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc;
using MVC_Boldizar.Models;
namespace MVC_Boldizar.Controllers
{
public class AdminController : Controller
{
private IEsemenyRepository EsemenyRepository;
private INyelvismeretRepository NyelvismeretRepository;
private IProgramozasiIsmeretRepository ProgramozasiIsmeretRepository;
private IKapcsolatRepository KapcsolatRepository;
public AdminController(IEsemenyRepository erepo, INyelvismeretRepository nrepo, IProgramozasiIsmeretRepository prepo, IKapcsolatRepository krepo)
{
EsemenyRepository = erepo;
NyelvismeretRepository = nrepo;
ProgramozasiIsmeretRepository = prepo;
KapcsolatRepository = krepo;
}
public ActionResult Index()
{
ViewBag.Esemenyek = GetEsemenyek();
ViewBag.Nyelvismeretek = GetNyelvismeretek();
ViewBag.ProgramozasiIsmeretek = GetProgismeretek();
ViewBag.Kapcsolatok = GetKapcoslatok();
return View();
}
public IEnumerable<Nyelvismeret> GetNyelvismeretek()
{
return NyelvismeretRepository.Nyelvismeretek;
}
public IEnumerable<Esemeny> GetEsemenyek()
{
return EsemenyRepository.Esemenyek;
}
public IEnumerable<ProgramozasiIsmeret> GetProgismeretek()
{
return ProgramozasiIsmeretRepository.ProgramozasiIsmeretek;
}
public IEnumerable<Kapcsolat> GetKapcoslatok()
{
return KapcsolatRepository.Kapcsolatok;
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc;
using MVC_Boldizar.Models;
namespace MVC_Boldizar.Controllers
{
public class EsemenyController : Controller
{
private IEsemenyRepository EsemenyRepository;
private INyelvismeretRepository NyelvismeretRepository;
private IProgramozasiIsmeretRepository ProgramozasiIsmeretRepository;
public ActionResult Index()
{
ViewBag.Esemenyek = GetEsemenyek();
ViewBag.Nyelvismeretek = GetNyelvismeretek();
ViewBag.ProgramozasiIsmeretek = GetProgismeretek();
return View();
}
public EsemenyController(IEsemenyRepository erepo, INyelvismeretRepository nrepo, IProgramozasiIsmeretRepository prepo)
{
EsemenyRepository = erepo;
NyelvismeretRepository = nrepo;
ProgramozasiIsmeretRepository = prepo;
}
public IEnumerable<Nyelvismeret> GetNyelvismeretek()
{
return NyelvismeretRepository.Nyelvismeretek;
}
public IEnumerable<Esemeny> GetEsemenyek()
{
return EsemenyRepository.Esemenyek;
}
public IEnumerable<ProgramozasiIsmeret> GetProgismeretek()
{
return ProgramozasiIsmeretRepository.ProgramozasiIsmeretek;
}
public ActionResult CreateEsemeny()
{
return View();
}
public ActionResult CreaterProg()
{
return View();
}
public ActionResult CreateNyelv()
{
return View();
}
public ViewResult EditEsemeny(int esmId) => View(EsemenyRepository.Esemenyek.FirstOrDefault(esm => esm.EsemenyID == esmId));
public ViewResult EditProg(int proId) => View(ProgramozasiIsmeretRepository.ProgramozasiIsmeretek.FirstOrDefault(pro => pro.ProgramozasiIsmeretID == proId));
public ViewResult EditNyelv(int nyId) => View(NyelvismeretRepository.Nyelvismeretek.FirstOrDefault(ny => ny.NyelvismeretID == nyId));
}
}
使用系统;
使用System.Collections.Generic;
使用System.Linq;
使用System.Threading.Tasks;
使用Microsoft.AspNetCore.Mvc;
使用MVC_Boldizar.Models;
命名空间MVC_Boldizar.Controllers
{
公共类EsemenyController:控制器
{
私人电子储蓄;
私人储蓄存款;
私人IProgramozasismerepository计划;
公共行动结果索引()
{
ViewBag.Esemenyek=GetEsemenyek();
ViewBag.Nyelvismeretek=GetNyelvismeretek();
ViewBag.programozasismeretek=GetProgismeretek();
返回视图();
}
公共EsemenyController(IESEMENYREPOSITION erepo、INYLEVISMERETREPOSITION nrepo、IPROGRAMOZASIISMEREPOSITION PREP)
{
EsemenyRepository=erepo;
Nyelvismerepository=nrepo;
programozasismerepository=prep;
}
公共IEnumerable GetNyelvismeretek()
{
返回nyelvismeretropository.Nyelvismeretek;
}
公共IEnumerable GetEsemenyek()
{
返回EsemenyRepository.Esemenyek;
}
公共IEnumerable GetProgismeretek()
{
返回programozasismeretropository.programozasismeretek;
}
公共行动结果CreateSemeny()
{
返回视图();
}
public ActionResult createrplog()
{
返回视图();
}
公共行动结果CreateNyelv()
{
返回视图();
}
公共视图结果编辑器esemeny(int-esmId)=>View(EsemenyRepository.Esemenyek.FirstOrDefault(esm=>esm.EsemenyID==esmId));
public View result EditProg(int proId)=>View(programozasismeretrepository.programozasismeretek.FirstOrDefault(pro=>programozasismeretid==proId));
public ViewResult EditNyelv(int nyId)=>View(NyelvismeretRepository.Nyelvismeretek.FirstOrDefault(ny=>ny.NyelvismeretID==nyId));
}
}
IEsemenyRepository.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
namespace MVC_Boldizar.Models
{
public interface IEsemenyRepository
{
IEnumerable<Esemeny> Esemenyek { get; }
Esemeny GetEsemenyById(int id);
void SaveEsemeny(Esemeny esemeny);
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
namespace MVC_Boldizar.Models
{
public class EFEsemenyRepository : IEsemenyRepository
{
private ApplicationDbContext context;
public EFEsemenyRepository(ApplicationDbContext ctx)
{
context = ctx;
}
public IEnumerable<Esemeny> Esemenyek => context.Esemenyek;
public Esemeny GetEsemenyById(int id)
{
return context.Esemenyek.Find(id);
}
public void SaveEsemeny(Esemeny esemeny)
{
if(esemeny.EsemenyID == 0)
{
context.Esemenyek.Add(esemeny);
}
else
{
Esemeny dbEsemeny = context.Esemenyek.FirstOrDefault(esm => esm.EsemenyID == esemeny.EsemenyID);
if( dbEsemeny != null)
{
dbEsemeny.Nev = esemeny.Nev;
dbEsemeny.Leiras = esemeny.Leiras;
dbEsemeny.KezdEv = esemeny.KezdEv;
dbEsemeny.VegEv = esemeny.VegEv;
}
}
context.SaveChanges();
}
}
}
使用系统;
使用System.Collections.Generic;
使用System.Linq;
使用System.Threading.Tasks;
名称空间MVC_Boldizar.Models
{
公共接口IEsemenyRepository
{
IEnumerable Esemenyek{get;}
Esemeny GetEsemenyById(int-id);
无效保存Esemeny(Esemeny Esemeny);
}
}
EFEsemenyRepository.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
namespace MVC_Boldizar.Models
{
public interface IEsemenyRepository
{
IEnumerable<Esemeny> Esemenyek { get; }
Esemeny GetEsemenyById(int id);
void SaveEsemeny(Esemeny esemeny);
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
namespace MVC_Boldizar.Models
{
public class EFEsemenyRepository : IEsemenyRepository
{
private ApplicationDbContext context;
public EFEsemenyRepository(ApplicationDbContext ctx)
{
context = ctx;
}
public IEnumerable<Esemeny> Esemenyek => context.Esemenyek;
public Esemeny GetEsemenyById(int id)
{
return context.Esemenyek.Find(id);
}
public void SaveEsemeny(Esemeny esemeny)
{
if(esemeny.EsemenyID == 0)
{
context.Esemenyek.Add(esemeny);
}
else
{
Esemeny dbEsemeny = context.Esemenyek.FirstOrDefault(esm => esm.EsemenyID == esemeny.EsemenyID);
if( dbEsemeny != null)
{
dbEsemeny.Nev = esemeny.Nev;
dbEsemeny.Leiras = esemeny.Leiras;
dbEsemeny.KezdEv = esemeny.KezdEv;
dbEsemeny.VegEv = esemeny.VegEv;
}
}
context.SaveChanges();
}
}
}
使用系统;
使用System.Collections.Generic;
使用System.Linq;
使用System.Threading.Tasks;
名称空间MVC_Boldizar.Models
{
公共类EFEsemenyRepository:IEsemenyRepository
{
私有应用程序上下文上下文;
公共EFEsemenyRepository(ApplicationDbContext ctx)
{
上下文=ctx;
}
public IEnumerable Esemenyek=>context.Esemenyek;
公共Esemeny GetEsemenyById(int-id)
{
返回context.Esemenyek.Find(id);
}
公共无效保存Esemeny(Esemeny Esemeny)
{
如果(esemeny.EsemenyID==0)
{
context.Esemenyek.Add(esemeny);
}
其他的
{
Esemeny dbEsemeny=context.Esemenyek.FirstOrDefault(esm=>esm.EsemenyID==Esemeny.EsemenyID);
if(dbEsemeny!=null)
{
dbEsemeny.Nev=esemeny.Nev;
dbEsemeny.Leiras=esemeny.Leiras;
dbEsemeny.KezdEv=esemeny.KezdEv;
dbEsemeny.VegEv=esemeny.VegEv;
}
}
SaveChanges();
}
}
}
AdminController的Index.cshtml
@using MVC_Boldizar
@model MVC_Boldizar.Models.ViewModels.Szerkesztes
@{
ViewData["Title"] = "Index";
}
<h2>Index</h2>
<p>
<a asp-action="Create">Create New</a>
</p>
<table class="table">
<thead>
<tr>
<th>Események</th>
</tr>
</thead>
<tbody>
@foreach (Esemeny esm in ViewBag.Esemenyek)
{
<tr>
<td>
@esm.EsemenyID
</td>
<td>
@esm.Nev
</td>
<td>
@esm.Leiras
</td>
<td>
@esm.KezdEv
</td>
<td>
@esm.VegEv
</td>
<td>
<a asp-controller="Esemeny" asp-action="EditEsemeny" asp-route-EsemenyID="@esm.EsemenyID">Edit</a> |
<a asp-action="Details" asp-route-id="@esm.EsemenyID">Details</a> |
<a asp-action="Delete" asp-route-id="@esm.EsemenyID">Delete</a>
</td>
</tr>
}
</tbody>
</table>
<hr />
<p>
<a asp-action="Create">Create New</a>
</p>
<table class="table">
<thead>
<tr>
<th>Nyelvismeretek</th>
</tr>
</thead>
<tbody>
@foreach (Nyelvismeret esm in ViewBag.Nyelvismeretek)
{
<tr>
<td>
@esm.Nev
</td>
<td>
<a asp-controller="Esemeny" asp-action="EditNyelv" asp-route-id="@esm.NyelvismeretID">Edit</a> |
<a asp-action="Details" asp-route-id="@esm.NyelvismeretID">Details</a> |
<a asp-action="Delete" asp-route-id="@esm.NyelvismeretID">Delete</a>
</td>
</tr>
}
</tbody>
</table>
<hr />
<p>
<a asp-action="Create">Create New</a>
</p>
<table class="table">
<thead>
<tr>
<th>Programozási ismeretek</th>
</tr>
</thead>
<tbody>
@foreach (ProgramozasiIsmeret esm in ViewBag.ProgramozasiIsmeretek)
{
<tr>
<td>
@esm.Nev
</td>
<td>
<a asp-controller="Esemeny" asp-action="EditProg" asp-route-id="@esm.ProgramozasiIsmeretID">Edit</a> |
<a asp-action="Details" asp-route-id="@esm.ProgramozasiIsmeretID">Details</a> |
<a asp-action="Delete" asp-route-id="@esm.ProgramozasiIsmeretID">Delete</a>
</td>
</tr>
}
</tbody>
</table>
<hr />
<p>
<a asp-controller="Kapcsolat" asp-action="Create">Create New</a>
</p>
<table class="table">
<thead>
<tr>
<th>Kapcsolatok</th>
</tr>
</thead>
<tbody>
@foreach (Kapcsolat esm in ViewBag.Kapcsolatok)
{
<tr>
<td>
@esm.Nev
</td>
<td>
<a asp-action="Edit" asp-route-id="@esm.KapcsolatID">Edit</a> |
<a asp-action="Details" asp-route-id="@esm.KapcsolatID">Details</a> |
<a asp-action="Delete" asp-route-id="@esm.KapcsolatID">Delete</a>
</td>
</tr>
}
</tbody>
</table>
@使用MVC\u Boldizar
@MVC_Boldiz型
<a asp-controller="Esemeny" asp-action="EditEsemeny" asp-route-EsmId="@esm.EsmId">Edit</a>