2014-04-02 41 views
2

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

我的要求是“我在查看两个文本框从我检索数据控制器”

查看:

@using (Html.BeginForm("Addition", "Addition", FormMethod.Post)) 
{ 
    <input id="Text1" type="text" [email protected] name="firstNum" /> 
    <input id="Text2" type="text" [email protected] name="secondNum" /> 
    <input id="Text3" type="text" [email protected] /> 

    <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(); 
     } 

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

谢谢。

回答

5

一个MVC的权力是模型绑定 - 你完全忽略这里。创建一个视图模型视图的预期的内容

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

使用符合本作中,你的行动MVC预期参数

[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" /> 
} 
+0

+1在行动! –

+0

使用Model Binder是编程的好方法,我已经知道使用它。我只是想用不同的方式;) 谢谢你答案 – Chakri

0

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

0

更好的方法是

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

    } 

确保你正在做在客户侧的数字验证