2016-07-28 5 views
1

Ich versuche, ein paar zusätzliche Felder auf der Registerseite in der Standard asp.net MVC-Anwendung, die wir beim Öffnen von Visual Studio erhalten. Ich folgte diesem Tutorial.Wie füge ich zusätzliche Felder hinzu, um die Seite in asp.net mvc zu registrieren?

Customize MVC 5 Register Page

Dies sind die Schritte, die ich nach dem Öffnen des Standardprojekt gefolgt, die wir in Visual Studio für asp.net MVC bekommen.

  1. Zuerst habe ich das Projekt ausgeführt und auf die Schaltfläche Registrieren geklickt und einen zufälligen Benutzer registriert. Ich tat dies, damit die Standarddatenbank erstellt wurde.

    enter image description here

    1. Nun, da die Datenbank erzeugt wurde, ich in die Datenbank ging und hinzugefügt zusätzliche Spalten wie Geschlecht, Geburtstag, Vorname, Nachname und AboutUser und die Datenbank erneut aktualisiert Tabelle namens ASPNETUSERS.

    enter image description here

    1. Nun ging ich zu RegisterViewModel und fügte hinzu, auch diese gleichen Eigenschaften.

    enter image description here

    1. Danach habe ich zu ApplicationUser ging und fügte hinzu, auch die gleichen Eigenschaften.

    enter image description here

    1. Danach wechselte ich die Ansicht für Register.cshtml zu übernehmen zusätzliche Textboxen, Textfelder für die neuen Felder, die ich schuf.

    2. Jetzt ging ich zum Controller und fügte diese Eigenschaften auch hinzu. Alles scheint mir bisher gut zu sein, außer dass sich die Definition der Datenbank von Anfang an geändert hat.

    enter image description here

Dies ist, wie die Seite alle nach diesen Änderungen aussieht.

enter image description here

Nun lief ich das Projekt und versucht, eine Person zu registrieren, aber ich halte diesen Fehler.

enter image description here

ich diesen Fehler untersucht, aber die Lösungen vorschlagen, dass ich versuchen sollte Database.SetInitializer<YourDbContext>(null); im Konstruktor myDBContext hinzufügen. Aber die Sache ist, ich habe überhaupt keinen Kontext. Diese Lösung scheint für mich nicht zu funktionieren.

+1

Sie sollten die DB nicht direkt ändern. Ich würde vorschlagen, dass Sie die Felder löschen, die Sie hinzugefügt haben, und folgen Sie [@ Letvans Antwort] (http://stackoverflow.com/a/38647431/237917) – Eonasdan

+0

Also muss ich zuerst das Ding machen und dann meine Datenbankstruktur ändern? oder kann ich das jetzt tun, um das zu beheben? –

+1

Nein, bei Migrationen sollten Sie das Datenbankschema ändern. Fügen Sie die Eigenschaften zu "ApplicationUser" hinzu und führen Sie die Migrationsschritte aus. Eventuell müssen Sie 'enable-migrations' zuerst ausführen. Sie möchten Code First lesen. – Eonasdan

Antwort

3

Wenn Sie eine Entität in der Lösung ändern, sollten Sie Ihre Datenbank ändern (damit Ihr Objektmodell Ihrem Datenbankmodell entspricht).

In diesem Fall Sie nuget Paket Konsole (Service> nuget> console) und Verwendung öffnen sollte:

 add-migration <YourNewMigrationName> 

und nach neuen Migration erstellt (Code für Änderung Ihrer db-Modell), müssen Sie es akzeptieren:

 update-database 
0

nur den Eintrag entfernen hinzugefügt Migrationstabelle