2016-04-13 16 views
-1

Ich bin neu in ASP.NET MVC und habe Probleme beim Aktualisieren der Modelldaten und dann beim Anzeigen meiner Ansicht.Anzeigen von Modelldaten in der Ansicht

Ich habe derzeit eine MortgageCalculator-Klasse, die ich als Modell verwende.

public double loan_amount { get; set; } 
    public double interest { get; set; } 
    public int loan_duration { get; set; } 
    public int payments_year { get; set; } 

-Code für den Controller ist:

[httpGet] 
    public ActionResult M_Calculator() 
    { 
     var mortgageCalculator = new MortgageCalculator(); 
     return View(mortgageCalculator); 
    } 
    [HttpPost] 
    public ActionResult M_Calculator(MortgageCalculator mortgageCalculator) 
    {  
     UpdateModel(mortgageCalculator); 
     return RedirectToAction("Results"); 
    } 

    public ActionResult Results (MortgageCalculator mortgageCalculator) 
    { 
     return View(mortgageCalculator); 
    } 

-Code für meine Ansicht ist:

@using (Html.BeginForm()) 
{ 
<fieldset> 
    <legend>Mortgage Calculator</legend> 
    <div class="editor-label"> 
     @Html.LabelFor(model => model.loan_amount) 
    </div> 
    <div class="editor-field"> 
     @Html.TextBoxFor(model => model.loan_amount) 
    </div> 
    <br /> 

    <div class="editor-label"> 
     @Html.LabelFor(model => model.interest) 
    </div> 
    <div class="editor-field"> 
     @Html.TextBoxFor(model => model.interest) 
    </div> 
    <br /> 

    <div class="editor-label"> 
     @Html.LabelFor(model => model.loan_duration) 
    </div> 
    <div class="editor-field"> 
     @Html.TextBoxFor(model => model.loan_duration) 
    </div> 
    <br /> 

    <div class="editor-label"> 
     @Html.LabelFor(model => model.payments_year) 
    </div> 
    <div class="editor-field"> 
     @Html.TextBoxFor(model => model.payments_year) 
    </div> 
    <br /> 

    <input type="submit" value="Calculate" /> 

</fieldset> 

}

Ich möchte einige Berechnungen auf Daten machen, die ich erhalte vom Benutzer und zeigen Sie dann die Ergebnisse in meiner Ergebnisansicht an. Ich habe keine Datenbank. Ich möchte nur einfache Berechnungen an Daten durchführen und die Ergebnisse zeigen. Die Lösung scheint ziemlich geradlinig zu sein, aber ich stecke fest. Ich würde jede Hilfe schätzen.

+0

Ihre 'Results()' Methode hat einen Parameter 'MortgageCalculator hypothekarCalculator', aber Sie geben nichts an diese Methode weiter, wenn Sie dorthin umleiten, also wird es eine Standardinstanz sein. Sie müssen die Daten irgendwo in Ihrer 'M_Calculator'-Methode persistieren und dann wieder in der' Results() 'Methode holen. Idealerweise zu einer Datenbank, aber Sie könnten 'Session' (einschließlich' TempData') verwenden –

Antwort

1

Statt Redirect Benutzer zu einer anderen Aktion sollten Sie Ihr Modell mit dem Ergebnis, bevölkert zurückkehren, wie folgt aus:

[HttpPost] 
public ActionResult M_Calculator(MortgageCalculator mortgageCalculator) 
{  
    UpdateModel(mortgageCalculator); 
    return View("Results", mortgageCalculator); 
} 

Wenn Sie die Ergebnisse zeigen nicht nur eine andere Ansicht erstellen möchten zu, entfernen Sie einfach die Der erste Parameter gibt an, welche Ansicht ASP.NET MVC verwenden soll. Daher wird die Standardansicht verwendet.

Verwandte Themen