我刚刚开始使用ASP.Net,目前我正在尝试使用MVC创建一个简单的计算器。我有我的视图布局,但我无法调用我想要的对象。如果你知道任何好的指南或帮助解决我的问题会很棒。对于我的结果动作,我正在查看一个指南,它让我不知道如何处理它。 视图:
@using CalculatorApp.Models
@{
ViewBag.Title = "Index";
}
@using (Html.BeginForm("Index", "CalcController")) {
<div>
<h2>@Html.Label("Enter first number") : @Html.TextBox("num1")</h2>
<h2>@Html.Label("Enter second number") : @Html.TextBox("num2")</h2>
</div>
<div>
<h2>
@Html.RadioButton("calkey", "0") +
<br>
@Html.RadioButton("calkey", "1") -
<br>
@Html.RadioButton("calkey", "2") *
<br>
@Html.RadioButton("calkey", "3") /
</h2>
</div>
<input type="submit" name="Index" value="Index"/>
}
型号:
namespace CalculatorApp.Models
{
public class Calculations : Controller
{
//
// GET: /Calculations/
public int num1 { get; set; }
public int num2 { get; set; }
public int result { get; set; }
public bool add { get; set; }
public bool sub { get; set; }
public bool mult { get; set; }
public bool div { get; set; }
}
}
控制器:
namespace CalculatorApp.Controllers
{
public class CalcController : Controller
{
public ActionResult Index(Calculations calc)
{
int selectedFunction = Convert.ToInt32(Request["calkey"]);
switch (selectedFunction)
{
case 0:
calc.result = calc.num1 + calc.num2;
break;
case 1:
calc.result = calc.num1 - calc.num2;
break;
case 2:
calc.result = calc.num1 * calc.num2;
break;
case 3:
if (calc.num2 > 0)
{
calc.result = calc.num1 / calc.num2;
}
break;
}
return View(calc);
}
public ActionResult Result(Calculations calc)
{
return View(calc);
}
}
}
我想解决的问题是当我按下提交按钮时如何使计算工作。我不知道从哪里开始。
答案 0 :(得分:1)
我注意到的几个问题
在查看您必须在Html.BeginForm中删除Controller(仅限控制器名称(Calc))
将Html.BeginForm("Index", "CalcController")
更改为Html.BeginForm("Index", "Calc")
在您的模型中,您不应继承控制器
将public class Calculations : Controller
更改为public class Calculations
在控制器
当您在索引方法发布数据时,您可以从控制器中删除结果方法。之后添加名为'Index'的新get方法,如
public ActionResult Index()
{
return View();
}
最后,您必须要在视图中显示结果。所以在索引视图中创建一个元素,如@Html.TextBox("result")
<强>更新强>
如果您想在结果方法
发布数据@Html.BeginForm