我是asp.net mvc的新手。我想执行以下场景。
我有一个表单来计算简单的兴趣。填写表格后我想在该表格下方显示简单的利息值。我已将输入的值传递给控制器并计算出简单的利息值。问题是如何显示用户单击“计算”后,该值低于该表单。
我的表单结构如下:
量
率
年
计算
点击计算后,我想在该表格下面显示简单的兴趣值。
我的代码如下:
控制器
public ActionResult SimpleInterest()
{
SimpleInterestModel model = new SimpleInterestModel();
return View(model);
}
[HttpPost]
public ActionResult CalculateSimpleInterestResult(SimpleInterestModel model)
{
decimal simpleInteresrt = (model.Amount * model.Year * model.Rate) / 100;
StringBuilder sbInterest = new StringBuilder();
sbInterest.Append("<b>Amount :</b> " + model.Amount + "<br/>");
sbInterest.Append("<b>Rate :</b> " + model.Rate + "<br/>");
sbInterest.Append("<b>Time(year) :</b> " + model.Year + "<br/>");
sbInterest.Append("<b>Interest :</b> " + simpleInteresrt);
return Content(sbInterest.ToString());
}
查看
<div class="container" style="width:30%">
<h2>Calulate Simple Interest</h2>
@using (@Html.BeginForm("CalculateSimpleInterestResult", "Test", FormMethod.Post))
{
@Html.TextBoxFor(m => m.Amount, new { @class = "form-control", @placeholder = "Amount" })
@Html.TextBoxFor(m => m.Rate, new { @class = "form-control", @placeholder = "Rate" })
@Html.TextBoxFor(m => m.Year, new { @class = "form-control", @placeholder = "Year" })
<input type="submit" value="Calculate" class="btn-block" />
}
</div>
模型
public class SimpleInterestModel
{
public decimal Amount { get; set; }
public decimal Rate { get; set; }
public int Year { get; set; }
}
答案 0 :(得分:1)
您可以使用按钮点击事件上的jquery计算简单兴趣,并在同一视图中显示结果。
function calculateSimpleInterest() {
var loSimpleInterest = parseFloat(parseFloat($('#Amount').val())*parseFloat($('#Year').val())*parseFloat($('#Rate').val()))/100;
$('#Result').text('Simple Interest: ' + loSimpleInterest)
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script>
Amount: <input type="text" id="Amount"><br/><br/>
Rate: <input type="text" id="Rate"><br/><br/>
Year: <input type="text" id="Year"><br/><br/>
<input type="submit" value="Calculate" id="Calculate" onclick="calculateSimpleInterest();" />
<br/><br/>
<label id="Result"></label>
&#13;
答案 1 :(得分:0)
有几种可能性。
一种方法是使用类似byte[]
的方法扩展模型,并将模型返回到另一个显示模型数据的视图。
或者您可以将public int SimpleInteresrt {get;set;}
值传递到Viewbag中,然后通过剃刀查看它。你只需要在Razor-Code的形式下检查Viewbag是否为null,如果没有,则显示该值。
在你看来这样的事情:
simpleInteresrt
在您的控制器中,您可以在计算之后添加类似
的内容@{
int? simple = Viewbag.Simple;
if( simple.HasValue )
{
@: Your Value is: @simple.Value
}
}
另一种方法是使用异步JavaScript调用(AJAX)。将数据发布到Controller并通过JavaScript接收JSON-Answer的位置,用于操作DOM。