我正在尝试使用MVC Ajax实现一个简单的添加操作
我的代码如下:
Public Class Model
{
public int number1{get;set;}
public int number2{get;set;}
}
[HttpPost]
public string TestAjax( )
{
int strnum1 = Convert.ToInt32(Request["txtbox1"].ToString());
int strnum2 = Convert.ToInt32(Request["txtbox2"].ToString());
string strnum3 = Convert.ToString(strnum1 + strnum2);
if (strnum3 != null)
{
return strnum3;
}
return string.Empty;
}
它正在击中Ajax动作方法。但是,我无法从请求对象或表单集中获取值
我收到了,对象引用未设置为对象错误消息的实例。
已更新:客户端代码
<% using (Ajax.BeginForm("TestAjax", "Reviewer", new AjaxOptions { UpdateTargetId = "textEntered" }))
{ %>
<table align="center">
<tr>
<td class="tdCol1Align">
<label>
Number1</label>
</td>
<td class="tdCol2Align">
<input type="text" id="txtbox1" />
</td>
</tr>
<tr>
<td class="tdCol1Align">
<label>
Number2</label>
</td>
<td class="tdCol2Align">
<input type="text" id="txtbox2" />
</td>
</tr>
<tr>
<td colspan="2" align="center">
<input type="submit" value="Add" class="button" />
</td>
</tr>
</table>
<%
}
%>
<br />
<br />
<span id="textEntered"></span>
请帮助..
答案 0 :(得分:5)
您需要在html元素中设置name
属性:
<input type="text" id="txtbox2" name="txtbox2" />
答案 1 :(得分:1)
更新:根据您的型号:
[HttpPost]
public int TestAjax(Model mymodel)
{
return mymodel.number1 + mymodel.number2;
}
在您的HTML中,假设您正在引用该模型:
@model Model
相应地替换您的输入:
@Html.TextBoxFor(model => model.number1)
@Html.TextBoxFor(model => model.number2)
您必须验证用户是否仅使用javascript在文本框中键入整数有效值。