2011-12-10 53 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:

Cont辊:

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

查看 -

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

使用ViewBag有错误:它不会在我的当前上下文包含。 – Nothing

+0

你使用MVC3吗?如果没有,您可以使用ViewData代替。 –

+0

在编辑中添加样本 –

相关问题