我正在尝试构建一个搜索过滤器,其中有两个表单。一种是用于基本搜索过滤器,另一种形式用于更多搜索。在这方面,我希望当用户点击更多的过滤器并点击查看结果时,两个表单都会被提交。
这是一个具有一个输入的简单形式。
@using(Html.Beginform())
{
<input type="text" name="input1" />
}
这是具有另一个输入和提交按钮的第二个表单。
@using(Html.Beginform())
{
<input type="text" name="input2" />
<input type="submit" value="submit" />
}
我希望当用户单击submit
按钮时,两个表单都将被提交,并且表单的值将使用formCollection类在控制器中获取。
这可能吗?
两个提交将作为两个单独的POST命令进行处理,这意味着每个submit
将由.NET
中的一个单独线程处理,并且它们将由两个独立的ActionMethod调用进行处理。
即使这是相同的ActionMethod,它也会被调用两次,并且每一次都不知道另一次调用或其数据。
实现这一点的唯一方法是将所有数据放入一个FORM(例如,可以使用<input type="hidden">
,并使用Javascript设置值(,或者将至少一个Post作为AJAX Post,然后以实现最终目标的方式处理AJAX Post的结果(您没有向我们提供太多信息(。
您无法通过这种方式实现这一点,但您可以通过JQuery ajax、来实现
<script>
$(document).ready(function()
{
var Input1=$("#Input1").val();
var Input2=$("#Input2").val();
$('#btnsubmit').click(function () {
$.ajax({
url: "ControllerName/Actionname",
type: "POST",
data: { InputValue1: Input1,InputValue2:Input2},
cache: false,
async: true,
success: function (data) {
alert(data);
}
});
});`
</script>
然后您可以从控制器操作方法中获取值。