2016-04-13 11 views
-1

私はASP.NET MVCを初めて使用しています。モデルデータを更新してから表示するのに問題があります。モデルデータを表示する

私は現在モデルとして使用しているMortgageCalculatorクラスを持っています。コントローラの

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

コードは次のようになります。私の見解について

[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); 
    } 

コードは次のとおりです。

@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> 

}

私は受信データにいくつかの計算をしたいです結果ビューに結果を表示します。私はデータベースを持っていません。私はちょうどデータの簡単な計算を実行し、結果を表示したい。解決策はかなり正直なようですが、私は立ち往生しています。助けていただければ幸いです。

+0

あなたの 'Results()'メソッドはパラメータ 'MortgageCalculator mortgageCalculator'を持っていますが、リダイレクト時にそのメソッドに何も渡さないのでデフォルトのインスタンスになります。 'M_Calculator'メソッドのどこかでデータを保持し、' Results() 'メソッドで再度取得する必要があります。理想的にはデータベースですが、 'Session'(' TempData'を含む) –

答えて

1

代わりに別のアクションにリダイレクトユーザーのあなたは、このように、結果が取り込まであなたのモデルを返す必要があります:

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

あなたは結果のみを表示する別のビューを作成したくない場合は、単に削除しますASP.NET MVCが使用するビューを示す最初のパラメータです。したがって、デフォルトのビューが使用されます。

関連する問題