【问题标题】:I am using ASP.NET MVC4 and i want to submit my two forms with single submit button, also i want to fetch data using form collection我正在使用 ASP.NET MVC4,我想用单个提交按钮提交我的两个表单,我还想使用表单集合获取数据
【发布时间】:2020-06-21 04:30:41
【问题描述】:

我正在尝试构建一个搜索过滤器,我有两种形式。一种用于基本搜索过滤器,另一种用于更多搜索。在此我希望当用户点击更多过滤器并点击查看结果时,两个表单都将被提交。

这是一种只有一个输入的简单表单。

@using(Html.Beginform())
{
    <input type="text" name="input1" />
}

这是第二种形式,有另一个输入和提交按钮。

@using(Html.Beginform())
{
    <input type="text" name="input2" />
    <input type="submit" value="submit" />
}

我希望当用户单击submit 按钮时,表单都将被提交,并且表单的值将使用 formCollection 类在控制器中获取。

这可能吗?

【问题讨论】:

  • 所以您希望在单击提交按钮时提交两个表单?

标签: asp.net asp.net-mvc-4 model-view-controller


【解决方案1】:

这两个提交将作为两个单独的 POST 命令处理,这意味着每个 submit 将由 .NET 中的一个单独线程处理,它们将由两个单独的 ActionMethod 调用处理。

即使那将是同一个 ActionMethod,它也会被调用两次,并且每个人都不知道另一个调用或其数据。

实现这一点的唯一方法是将所有数据放入一个表格(您可以为此使用例如&lt;input type="hidden"&gt;,并使用您使用Javascript设置的值),或者通过执行至少将其中一个 POST 作为 AJAX 帖子,然后以能够实现您的最终目标的方式处理来自 AJAX 帖子的结果(您尚未向我们提供太多信息)。

【讨论】:

    【解决方案2】:

    您无法通过这种方式实现这一点,但是您可以通过 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>
    

    然后您可以从控制器操作方法中获取值。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-11
      • 2011-01-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多