如何在MVC中使用控制器对2个输入文本编号求和

时间:2018-01-05 21:14:12

标签: asp.net-mvc

我的视图中有3个输入文字和一个按钮,如下所示

@using (Html.BeginForm()) { 
    <input id="Text1" name="txtNum1" type="text" placeholder="num 1" onkeypress='return event.charCode >= 48 && event.charCode <= 57'/>

    <input id="Text2" name="txtNum2" type="text" placeholder="num 2" onkeypress='return event.charCode >= 48 && event.charCode <= 57'/>

    <input id="Text3" name="txtNum3" type="text" readonly="readonly" />

    <input id="Submit1" type="submit" value="Sum" />

}

在我的控制器中,当我点击提交按钮时,我想将2个输入文本相加并将结果放在第三个文本中,这是我的控制器

public ActionResult Index()
{

    return View();
}
[HttpPost]
public ActionResult Index(int txtNum1=0,int txtNum2=0, int txtNum3=0)
{
     txtNum3= txtNum1+ txtNum2;

     return View(txtNum3);
}

当我在第1和第2个文本中添加数字时,请点击提交回发,但我不会在第3个文本中显示任何结果。
那么如何修复此代码?

1 个答案:

答案 0 :(得分:3)

首先需要创建一个Model类,在您的情况下,它将包含三个属性,因为您有三个文本框,输入将是数字,因此请使用int

您的模型类将是:

public class SumModel
{
    public int Number1 { get;set;}
    public int Number1 {get;set;}
    pubilc int Result {get { return Number1 + Number2;}}
}

然后在您的视图中,您需要指定它所熟悉的Model,这意味着此视图与哪个模型绑定:

@model YourNameSpace.Models.SumModel 
@using (Html.BeginForm()) 
{ 
    @Html.TextBoxFor(x=>x.Number1)

    @Html.TextBoxFor(x=>x.Number2)

    @Html.TextBoxFor(x=>x.Result, new {@readonly = "readonly"})

    <input id="Submit1" type="submit" value="Sum" />

}

并在控制器操作中添加SumModel类型的参数:

 [HttpPost]
 public ActionResult Index(SumModel model)
 {
     return View(model);
 }
发布模型后,

将使用第三个文本框重新渲染视图,其中包含两个文本框的总和值。