在MVC中添加两个数字

时间:2014-04-02 11:08:36

标签: asp.net asp.net-mvc asp.net-mvc-4 razor-2

我想在MVC中添加两个数字。

我的要求是“我在视图中有2个文本框,我必须从中检索数据到控制器”

查看:

@using (Html.BeginForm("Addition", "Addition", FormMethod.Post))
{
    <input id="Text1" type="text" value=@ViewBag.a name="firstNum" />
    <input id="Text2" type="text" value=@ViewBag.b name="secondNum" />
    <input id="Text3" type="text" value=@ViewBag.result />

    <input type="submit" value="Submit" />
}

控制器名称:添加 行动名称:加法

[HttpPost]
        public ActionResult Addition(FormCollection fc)
        {
            string[] keyss = fc.AllKeys;
            ViewBag.a = fc.Keys[0];
            ViewBag.b = fc.Keys[1];
            ViewBag.total = ViewBag.a + ViewBag.b;
            return View();
        }

现在,从这个表单集合中,我想要检索文本框的值。

感谢。

3 个答案:

答案 0 :(得分:5)

MVC的一个强大功能是模型绑定器 - 你在这里完全忽略了它。创建视图模型以匹配视图的预期内容

public class AdditionViewModel
{
    public int A { get; set; }
    public int B { get; set; }
    public int Result { get; set; }
}

将此作为操作中的预期参数

[HttpPost]
public ActionResult Addition(AdditionViewModel model)
{
    model.Result = model.A + model.B;
    return View(model);
}

然后最后在你看来

@model AdditionViewModel

@using (Html.BeginForm("Addition", "Addition", FormMethod.Post))
{
    @Html.EditorFor(x => x.A)
    @Html.EditorFor(x => x.B)
    @Html.DisplayFor(x => x.Result)

    <input type="submit" value="Submit" />
}

答案 1 :(得分:0)

假设您将数据输入到您的控制器,之后您只需添加添加视图并使用    @ViewBag.total简单,或者你也可以使用viewdata或tempdata,如果你需要的话。

答案 2 :(得分:0)

更好的方法是

  [HttpPost]
  public ActionResult Addition(int firstNum, int secondNum )
  {
   ViewBag.Result=firstNum+secondNum;
   return View();

  }

确保您在客户端进行数值验证