2011-12-10 5 views
2

私はasp.net mvcの若い開発者です。今、私はユーザーの入力値を計算する簡単な電卓をしようとしています。asp.net mvcのビューにコントローラからの結果を表示するC#

これはMVCの私のモデルである:

public class MoneyInstallments 
{ 
    [Required(ErrorMessage="The price is required.")] 
    public double price { get; set; } 

    [Required(ErrorMessage = "The duration is required.")] 
    public int duration { get; set; } 

    public double interestRate = 0.029; 
    public double total_interest { get; set; } 
    public double total_money { get; set; } 
    public double total_money_month { get; set; } 

} 

コントローラ:

public ActionResult Index() 
{ 
return View(); 
} 
[HttpPost] 
public ActionResult Index(FormCollection frm) 
{ 
     string price_str = frm["price"].ToString(); 
     string duration_str = frm["duration"].ToString(); 
     double price; 
     double duration; 

     try 
     { 
      price = Convert.ToDouble(price_str); 
      duration = Convert.ToDouble(duration_str); 
      double interestRate = 0.029; 
      double total_interest = interestRate * duration; 
      double total_money = total_interest + price; 
      double total_money_month = total_money/duration; 

     } 
     catch (FormatException) 
     { 
      Response.Write("Unable to caculate"+price_str); 
     } 
     catch (OverflowException) 
     { 
      Response.Write("Unable to caculate" + price_str); 
     } 


     return View(); 
    } 

ビュー:

<% Html.BeginForm(); %> 
    <fieldset> 
     <legend>Money Information</legend> 
    <table> 
     <tr> 
      <td>Product Price:</td> 
      <td>:</td> 
      <td> 
       <%: Html.TextBoxFor(m => m.price, new { id = "price", name = "price"})%> <!-- user can type only 50 char of the string --> 
       <%: Html.ValidationMessageFor(m => m.price)%> 
      </td> 
     </tr> 
     <tr> 
      <td>Interest per month</td> 
      <td>:</td> 
      <td>2.9%</td> 
     </tr> 
     <tr> 
      <td>Duration</td> 
      <td>:</td> 
      <td> 
       <%: Html.TextBoxFor(m => m.duration, new {id="duration", name="duration"}) %> 
       <%: Html.ValidationMessageFor(m => m.duration) %> 
      </td> 
     </tr> 
     <tr> 
      <td colspan="3" align="right"><input type="submit" value="Calculate"id="btnCalculate"/></td> 
     </tr> 
     <tr> 
      <td>Monthly Pay is</td> 
      <td>:</td> 
      <td><div id="result"></div></td> 
     </tr> 
    </table> 
    </fieldset> 
    <% Html.EndForm(); %> 

私は中に私のコントローラからtotal_money_monthを表示したいです私の意見は、私はそれについての考えを知っている。誰でも私に教えてください。

答えて

1

あなたのコントローラであなたのViewBagを使用してビューに値を渡すことができます。

ViewBag.MonthlyTotal = total_money_month; 
return View(); 

を次に、あなたのビューでは、あなたがそれを表示することができます。

@ViewBag.MonthlyTotal 

編集:

代わりにViewDataを使用するには:

続きローラー:ViewBagを使用して

ViewData["MonthlyTotal"] = total_money_month; 
return View(); 

[表示] -

<%= ViewData["MonthlyTotal"] %> 
+0

がエラーを持っている:それは私の現在のコンテキストに含まれていません。 – Nothing

+0

MVC3を使用していますか?そうでない場合は、代わりにViewDataを使用できます。 –

+0

編集で追加したサンプル –

関連する問題