C# 在视图中显示模型数据

C# 在视图中显示模型数据,c#,razor,asp.net-mvc-5,C#,Razor,Asp.net Mvc 5,我是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; } 控制器

我是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>
@使用(Html.BeginForm())
{
按揭计算器
@Html.LabelFor(model=>model.loan\u amount)
@Html.TextBoxFor(model=>model.loan\u amount)

@LabelFor(model=>model.interest) @Html.TextBoxFor(model=>model.interest)
@LabelFor(model=>model.loan_duration) @Html.TextBoxFor(model=>model.loan_duration)
@Html.LabelFor(model=>model.payments\u year) @Html.TextBoxFor(model=>model.payments\u year)
}


我想对从用户那里收到的数据进行一些计算,然后在结果视图中显示结果。我没有任何数据库。我只想对数据进行简单的计算并显示结果。解决办法似乎很简单,但我被卡住了。非常感谢您的帮助。

您应该返回模型并填充结果,而不是将用户重定向到其他操作,如下所示:

[HttpPost]
public ActionResult M_Calculator(MortgageCalculator mortgageCalculator)
{    
     UpdateModel(mortgageCalculator);
     return View("Results", mortgageCalculator);
}
如果您不想创建另一个仅显示结果的视图,只需删除指示ASP.NET MVC应使用哪个视图的第一个参数,那么它将使用默认视图。

Your
results()
方法有一个参数
MortgageCalculator MortgageCalculator
,但当您重定向到该方法时,不会向该方法传递任何内容,因此它将是默认实例。您需要将数据保存在
M_Calculator
方法中的某个位置,然后在
Results()
方法中再次获取数据。理想情况下是数据库,但您可以使用
会话
(包括
TempData