我的视图中有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个文本中显示任何结果。
那么如何修复此代码?
答案 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);
}
发布模型后,将使用第三个文本框重新渲染视图,其中包含两个文本框的总和值。