Eigenschaft für das Modellobjekt festlegen?

8

Hallo,

Ich baue eine ASP.NET MVC-Site und habe über ein Problem hinweg gearbeitet. In meinem Projekt habe ich eine Modelview-Klasse, die ein paar Eigenschaften enthält, zum Beispiel:

%Vor%

Diese Modelview-Klasse ist an eine typisierte Ansicht gebunden, in der ich die Eigenschaften festlegen kann. Wie mache ich das mit javascript / jquery? Ich habe es mit Model.MyProperty1 = 1 versucht, aber das funktioniert nicht?

BestRegards

    
Banshee 03.03.2011, 13:13
quelle

2 Antworten

22

Sie können serverseitige Werte nicht mit Javascript festlegen. Sie können diese Werte mit HTML-Helfern an Eingabefelder (Textfelder, ausgeblendete Felder, Textbereiche, Dropdowns usw.) binden und dann mit Javascript die Werte dieser Eingabefelder ändern.

Also zum Beispiel, wenn Sie ein verstecktes Feld haben:

%Vor%

Sie könnten den Wert folgendermaßen ändern:

%Vor%

Wenn das umschließende Formular an den Server gesendet wird, wird der neue Wert an Ihr Ansichtsmodell gebunden.

    
Darin Dimitrov 03.03.2011, 14:17
quelle
2

Sie versuchen, die serverseitige Eigenschaft auf dem Client festzulegen - es wird nicht funktionieren. Ihr Ansichtsmodell existiert nur auf dem Server, wenn Ihre Ansicht gerendert wird. Sobald die Antwort an den Browser gesendet wird, existiert Ihre Klasse nicht mehr.

Wenn Sie einige Daten vom Client zum Server übertragen möchten, müssen Sie:

  • posten Sie ein Formular oder
  • mache einen AJAX-Anruf

Sehen Sie sich die Methode jQuery ajax an.

ViewModel wird verwendet, um Daten vom Controller an die Ansicht zu übergeben, damit die Ansicht HTML darstellen kann. Nachdem das HTML gerendert wurde, wird ViewModel verworfen. Es gibt keinen Grund, ViewModel-Eigenschaften in der Ansicht zu setzen, da sie später von nichts verwendet werden.

Ich glaube, Sie kommen vom WebForms (UpdatePanel) -Hintergrund. Der MVC ist ein total Konzept / Architektur. Es funktioniert anders als WebForms / UpdatePanel.

    
Jakub Konecki 03.03.2011 13:16
quelle

Tags und Links