从控制器到asp.net mvc c中的视图显示结果#

时间:2011-12-10 04:15:50

标签: c# jquery asp.net asp.net-mvc

我是asp.net mvc的年轻开发人员,现在我正在尝试使用一个简单的计算器来计算用户输入的值。

这是我的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 个答案:

答案 0 :(得分:1)

您可以使用控制器中的ViewBag将值传递给视图:

ViewBag.MonthlyTotal = total_money_month; 
return View();

然后在您的视图中,您可以显示它:

@ViewBag.MonthlyTotal

修改

改为使用ViewData:

控制器:

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

查看 -

<%= ViewData["MonthlyTotal"]  %>