2009-07-05 15 views
0

Ich frage mich, wie Sie einen konstanten Wert des Modells in einem ASP.NET MVC-Framework beibehalten. Wie beim Hinzufügen von etwas zum Modell durch die Ansicht. Sie gehen zurück zu einer Aktion in der Steuerung, aber wo behalten Sie das Modell? Ist es privat im Controller? oder wird es von der Ansicht zum Controller hin und her geleitet, denn wenn es groß wird, dann geben Sie viele Daten hin und her, um einen einzelnen Artikel aus dem Modell hinzuzufügen/zu löschen.Aktualisieren von Modell in MVC

Auch kleine Beispiele, um dies zu zeigen?

Danke

+0

Sie müssen angeben, auf welches Framework Sie sich beziehen. Es gibt viele MVC-basierte Frameworks: Ruby on Rails, ASP.Net MVC, Grails, Zend etc. –

Antwort

0

Worauf beziehen Sie sich? Bedeuten Sie eine Datenbanktabelle, die in ein Objekt wie das ORM von Ruby on Rails geladen wird - typischerweise ist das 'Modell' eine Reihe von Schnittstellen oder Domänenobjekten, die Daten in Objekte aus der Datenbank laden .. oder einfach nur die Datenbankperiode.

Bitte seien Sie genauer. Es gibt viele MVC-Frameworks und viele verschiedene Arten von 'Models'

+0

Ich spreche von der asp.net MVC.Wo das Modell eine Klasse ist oder mit Datenbankmaterial verwandt sein kann. Der Controller kann das Modell an die zu rendernde Ansicht übergeben, aber meine Frage ist, wie Sie Änderungen am Modell verfolgen. –

0

Ich denke, Sie sollten einen ASP.NET MVC Tuturial wie NerdDinner (aus "Professional ASP.NET MVC 1.0") überprüfen. Scott Guthrie hat eine html version of the tutorial auf seiner Website veröffentlicht. Es ist eine ziemlich einfache Site, die sie im Tutorial erstellen, und ist eine großartige Einführung in ASP.NET MVC (meiner Meinung nach). Es gibt auch einige good tutorials on the ASP.NET site.

Hoffe, diese helfen Ihnen mit .NET MVC, es ist ein großartiges Framework zu verwenden!

+0

wow, warum der downvote? Die Frage war zu allgemein für eine tatsächliche Antwort. – mkchandler

0

Sie können das Modell an die Seite übergeben und Sie können dann UpdateModel (Modellname) in Ihrem Controller verwenden.

Jedes Mitglied im Modell muss eine Eigenschaft mit einem Getter und einem Setter sein.

Auf der Seite können Sie die Daten in einem versteckten Feld halten, wenn Sie den Wert außerhalb des Status halten müssen.

Wenn Sie Probleme bei der Verwendung von UpdateModel haben, können Sie Folgendes in Ihrem Controller verwenden;

[AcceptVerbs(HttpVerbs.Post)] 
public ActionResult MyAction(int? id, FormCollection collection) 
{ 
    string commentText = collection["myFieldName"]; 
} 

Dies wird normalerweise Ihre Werte aus dem Modell erhalten.

Hoffe das ist, was Sie gefragt haben.

0

Denken Sie an das Modell als Datenübertragungsobjekt. In einer Liste, Nur anzeigen oder Seite bearbeiten, ziehen Sie sie aus einer Datenebene als einzelnes Objekt oder als Liste von Objekten heraus. Der Controller übergibt es an die Ansicht und es wird angezeigt.

Bei einer Einfügung wird ein neues Datenübernahmeobjekt beim Postback instanziiert und mit den gebuchten Werten aktualisiert. Dann zurück zur Datenschicht zur Persistenz gesendet.

Bei einer Bearbeitung stammt sie von der Datenschicht der HTTP-GET-Anforderung und wird zum Vorfüllen des HTML-Formulars verwendet. Anschließend wird das Datenübertragungsobjekt mit den gebuchten Werten aktualisiert und zur Persistenz an die Datenschicht zurückgesendet.

Auf jeden Fall die Proben von NerdDinner oder Stephen Walther prüfen.