Ich versuche, einen neuen Datenbankeintrag in ASP.NET MVC mit einer ersten Code-Datenbank zu erstellen. Ich habe den Controller für das Modell mit Scaffolding und Ansichten erstellt und jedes Mal, wenn ich versuche, einen POST zu erstellen, ist das Modell niemals gültig. Die beiden Modelle, die zu demjenigen gehören, den ich erstellen möchte, sind immer null.Code zuerst Beitrag erstellen
Unten ist der Code für den Create POST in meinem Controller.
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Create([Bind(Include = "DeviceNumber,ManufacturerNumber,CarrierNumber,Name")] Device device)
{
if (ModelState.IsValid)
{
db.Devices.Add(device);
db.SaveChanges();
return RedirectToAction("Index");
}
ViewBag.CarrierNumber = new SelectList(db.Carriers, "CarrierNumber", "CarrierID", device.CarrierNumber);
ViewBag.ManufacturerNumber = new SelectList(db.Manufacturers, "ManufacturerNumber", "ManufacturerID", device.ManufacturerNumber);
return View(device);
}
Das folgende ist das Modell, das ich versuche zu erstellen. Die Fehler im ModelState sagen mir immer, dass Hersteller und Carrier null sind, aber sie sind erforderlich.
public class Device
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int DeviceNumber { get; set; }
[ForeignKey("ManufacturerNumber"), Required]
public virtual Manufacturer Manufacturer { get; set; }
public int ManufacturerNumber { get; set; }
[ForeignKey("CarrierNumber")]
[Required]
public virtual Carrier Carrier { get; set; }
public int CarrierNumber { get; set; }
[Required]
public string Name { get; set; }
}
Ich habe versucht, den Träger und Hersteller in der Create-Methode zuweisen, aber es führte noch in einem Fehler bei der Überprüfung.
Haben Sie gesehen, warum als ungültig markiert ist? –
Bitte aktualisieren Sie Ihre Frage mit Code anzeigen. Es ist schwer zu erraten, ohne zu sehen. – Jayee
Es ist keine gute Übung, ein Modell zur Ansicht zu senden. Erstellen Sie eine VIewmodel-Klasse und senden Sie sie an die Ansicht. – Jayee