我是mvc的新人。我的项目有问题。我首先使用代码为我的两个数据表和脚手架。我的第一个数据表一切都很好,但是当我尝试使用foreignkey向第二个表添加信息时,KlasaId" (第一个表格中的下拉列表),提交按钮不起作用。这是我的第一个表的代码:
namespace dziennik.Models
{
public class Klasa
{
public int KlasaId { get; set; }
public string NAZWA { get; set; }
public int Rok_szkolny { get; set; }
public virtual ICollection<Uczen> Uczen { get; set; }
}
}
CREATE TABLE [dbo].[Klasa] (
[KlasaId] INT IDENTITY (1, 1) NOT NULL,
[NAZWA] NVARCHAR (2) NOT NULL,
[Rok_szkolny] INT NOT NULL,
CONSTRAINT [PK_dbo.Klasa] PRIMARY KEY CLUSTERED ([KlasaId] ASC)
);
第二张表:
namespace dziennik.Models
{
public class Uczen
{
public int UczenId { get; set; }
public int KlasaId { get; set; }
.
.
.
public virtual Klasa Klasa { get; set; }
}
}
CREATE TABLE [dbo].[Uczen] (
[UczenId] INT IDENTITY (1, 1) NOT NULL,
[KlasaId] INT NOT NULL,
.
.
.
CONSTRAINT [PK_dbo.Uczen] PRIMARY KEY CLUSTERED ([UczenId] ASC),
CONSTRAINT [FK_dbo.Uczen_dbo.Klasa_KlasaId] FOREIGN KEY ([KlasaId])
REFERENCES [dbo].[Klasa] ([KlasaId]) ON DELETE CASCADE
);
GO
CREATE NONCLUSTERED INDEX [IX_KlasaId]
ON [dbo].[Uczen]([KlasaId] ASC);
的DbContext:
public class UczniowieContext : DbContext
{
public UczniowieContext() :base("UczniowieConnection")
{ }
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<Uczen>().ToTable("Uczen");
modelBuilder.Entity<Klasa>().ToTable("Klasa");
}
public DbSet<Klasa> Klasy { get; set; }
public DbSet<Uczen> Uczniowie { get; set; }
}
控制器:
// GET: DodawanieUzytkownika1/Create
public ActionResult Create()
{
ViewBag.KlasaId = new SelectList(db.Klasy, "KlasaId", "NAZWA");
return View();
}
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Create([Bind(Include = "UczenId,KlasaId,Imie_ucz,Nazwisko_ucz,Pesel,Data_ur_ucz,Miejsce_ur,Adres_zam,Imie_opiek_rodz,Kontakt")] Uczen uczen)
{
if (ModelState.IsValid)
{
db.Uczniowie.Add(uczen);
db.SaveChanges();
return RedirectToAction("Index");
}
ViewBag.KlasaId = new SelectList(db.Klasy, "KlasaId", "NAZWA", uczen.KlasaId);
return View(uczen);
}
查看:
<div class="form-group">
@Html.LabelFor(model => model.KlasaId, "KlasaId", htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.DropDownList("KlasaId", null, htmlAttributes: new { @class = "form-control" })
@Html.ValidationMessageFor(model => model.KlasaId, "", new { @class = "text-danger" })
</div>
</div>