Was ist der Wirkliche Vorteil an ScaffoldColumn-Attribut auf False festgelegt, die in MVC 3 Modell-ID-Eigenschaften
Ich bin neu in der MVC-und wenn ich baute mein Modell-Klassen für einen code-first-Ansatz jede Schlüssel-ID-Spalte das Attribut [ScaffoldColumn(false)]
gesetzt. Ich Tat dies, weil ich nicht wollte, dass die ID die angezeigt wird, in den Blick offensichtlich, und ich weiß, dass eine Arbeit um für dieses problem wäre das löschen der HTML erzeugt, die durch die Benutzeroberfläche in jeder Ansicht, die enthält ein ID-Feld.
Das problem ich lief in durch die Verwendung ScaffoldColumn
eingestellt false
in die Modelle zum ersten mal bemerkt wurde, wenn die Edit-Methode für eine Sicht war, feuerte, und ich erhielt diese Fehlermeldung: Store-update -, insert-oder delete-Anweisung betroffenen eine unerwartete Anzahl von Reihen (0). Bei mir lief der code im debug die ID-Eigenschaft wurde in der Tat auf null gesetzt, wie dies in meiner Ansicht Bearbeiten HttpPost
Methode.
Meiner Frage ist, dass ich hoffe, dass jemand vielleicht erläutern, was ist der Punkt in ein Attribut wie ScaffoldColumn
im MVC-wenn die ID nicht an einer controller-Methode(N) wie in diesem Fall ein Edit HttpPost
? Sollte ich nur gehen über diese auf die altmodische Art, und löschen Sie die HTML-markup in jeder Ansicht erstellt, die von der MVC-Tempel, die generiert werden, wenn dieses Attribut nicht Hinzugefügt, um ein - /Fremdschlüssel-Eigenschaften?
Arbeiten rund um fand ich, wenn Sie dieses Attribut setzen, um false
war das hinzufügen einer ID, param jedem HttpPost
Methode, und als Sie die entsprechende ID-Eigenschaft-Feld vor dem Aufruf SaveChanges()
.
InformationsquelleAutor Shawn | 2012-05-08
Du musst angemeldet sein, um einen Kommentar abzugeben.
Gut, Sie wollen es nicht eingerüstet als editierbares Feld dargestellt wird, aber natürlich wird Sie wollen, dass es in der form, wie Sie bemerkt. Die Lösung ist, fügen Sie es einfach manuell als verstecktes Feld in der Ansicht. So etwas wie dieses:
Nicht sicher, was der normale Weg ist, aber das ist, wie ich es mache. Es ist irgendwie verwunderlich, dass es anscheinend keinen Weg zum Schafott ein Feld als ausgeblendet. Sie kann "EditorFor" machen eine Immobilie als hidden-Feld, aber: stackoverflow.com/questions/4542972/...
... hinzufügen, ich denke, im Allgemeinen Gerüst ist nicht dazu gedacht zu sein, die von production-ready, nur einen Weg, um etwas funktionales schnell.
ich denke auch, @Html.HiddenFor ist der standard-Weg, der bis jetzt in MVC in solchen Szenarien
InformationsquelleAutor McGarnagle
Könnten Sie Anmerkungen zu Daten für diese und die Arbeit mit:
Diese Weise, Ihr Feld wird angezeigt, mit einem versteckten Eingang in den Blick. Keine änderungen vornehmen müssen, die Sicht wird wissen, wie um Sie anzuzeigen.
InformationsquelleAutor Simply Me
[ScaffoldColumn(false)], es versteckt lediglich die Eigenschaft.
Angenommen, Sie haben eine id, die automatisch hochgezählt Eigenschaft.
Die Nutzer haben nichts zu tun mit dieser Eigenschaft.
So verwenden Sie es zu verbergen Eigentum im Blick.
InformationsquelleAutor Md Shahriar
ScaffoldColumn ändert nur das Verhalten von Methoden wie Html.DisplayForModel (), die tatsächlich mit dem Standard-Vorlagen-Ansichten-system eingeführt, die in MVC 2. Es wirkt sich nicht auf die Visual Studio-Assistenten, die im Lieferumfang von MVC.
InformationsquelleAutor Umar Abbas