2014-04-02 84 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(); 

    } 

確保你正在做在客戶側的數字驗證