2017-02-03 2 views
0

Diese Frage wurde möglicherweise gestellt und wenn ja, fühlen Sie sich frei, mich in die richtige Richtung zu zeigen.ASP.NET MVC lesen Schreib-Set-Eigenschaft

Ich habe eine Ansicht Modell mit einer Eigenschaft, die wie folgt aussieht:

private decimal _paymentAmountPaid; 
public decimal PaymentAmountPaid 
{ 
    get { return CalPaymentAmountPaid(); } 
    set 
    { 
     _paymentAmountPaid = value; 
    } 
} 

Wenn die Ansicht lädt sie zeigt die richtige Menge, dass ich es in einem Steuer will (ein Kendo numerische Textbox). Aber wenn der Benutzer den Wert in der Textbox ändert, sagen wir von 100 bis 150, wird immer noch der Wert 100 gepostet. Wie bekomme ich es, um den Wert von was immer der Benutzer es ändert zu buchen?

+0

Wie sieht Ihr Formular (in Ihrer Ansicht) aus? – Alisson

+1

Es scheint ein bisschen unintuitiv für jeden konsumierenden Code, einen Wert festzulegen und dann etwas anderes zu bekommen, wenn man diesen Wert sofort liest. Vielleicht sollte die berechnete Version ihre eigene Eigenschaft sein? – David

Antwort

1

In Ihrem Getter Sie nicht den Wert zurück, vom Benutzer festgelegt, sondern wieder den Wert berechnen:

get { return CalPaymentAmountPaid(); } // always calculates the value 

Wenn der Benutzer den Wert eingestellt, werden Sie wahrscheinlich den lokalen Wert zurückgeben sollte später:

private decimal _paymentAmountPaid; 
private bool _userSetValue; 
public decimal PaymentAmountPaid 
{ 
    get { return _userSetValue ? _paymentAmountPaid : CalPaymentAmountPaid(); } 
    set 
    { 
     _userSetValue = true; 
     _paymentAmountPaid = value; 
    } 
} 
+0

Das hat wie ein Zauber funktioniert.! Vielen Dank Rene –