您可以创建一个对象,即SentModel
,然后确保发送站点的名称字段与对象内的属性匹配。
举个例子:
public class SentModel
{
public string Input1 { get; set; }
public string Intput2 { get; set; }
}
[HttpPost]
public void TestMethod(SendModel model)
{
model.Input1.ToString();
}
然后在你的aspx页面:
<form method="post" action="http://www.example.com/Controller/TestMethod" id="form1">
<div>
<asp:textbox runat="server" id="Input1" ClientIDMode="Static" />
<asp:textbox runat="server" id="Intput2" ClientIDMode="Static" />
<input type="submit" value="submit" />
</div>
</form>
正如你不能设置名称属性是标识很容易,你还需要使用一些jQuery的将字段重命名为解决方法:
$.each($('div').children(), function() {
$(this).attr("name",$(this).attr("id"));
});
上述方法具有强类型对象的好处,其中y你可以从中提取属性。您还可以将数据注释添加到对象以控制进入操作的验证。
另一种选择是包括在控制器动作表单名称参数:
[HttpPost]
public void TestMethod(string Input1, string Input2)
{
Input1.ToString();
}
这有加入的所有参数的方法,如果添加的属性的缺点/删除你的方法需要改变。
最后一个选项只是将其从请求中提取为Request.Form["Input1"]
。