Я использую ASP. NET MVC4, и я хочу отправить свои две формы с помощью одной кнопки отправки, а также я хочу получить данные, используя сбор форм - PullRequest
1 голос
/ 09 марта 2020

Я пытаюсь создать фильтр поиска, и в этом у меня есть две формы. Один предназначен для поискового фильтра basi * 1013, а другой - для дополнительных поисков. В этом я хочу, чтобы, когда пользователь нажимает на дополнительные фильтры и нажимает, чтобы увидеть результаты, обе формы будут отправлены.

Это простая форма с одним вводом.

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

Это вторая форма с другой кнопкой ввода и отправки.

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

Я хочу, чтобы, когда пользователь нажимает кнопку submit, формы отправлялись и значения формы выбирались в контроллере с использованием класса formCollection.

Возможно ли это?

Ответы [ 2 ]

0 голосов
/ 09 марта 2020

Вы не можете достичь этого таким образом, однако вы можете сделать это с помощью 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>

Затем вы можете получить значения из метода действия контроллера.

0 голосов
/ 09 марта 2020

Два представления будут обрабатываться как две отдельные команды POST, что означает, что каждая submit будет обрабатываться отдельным потоком в .NET, и они будут обрабатываться двумя отдельными вызовами ActionMethod.

Даже если это будет тот же ActionMethod, он будет вызываться дважды , и каждый из них не будет знать ни о другом вызове, ни о своих данных.

Единственный способ добиться этого - либо поместив все данные в одну ФОРМУ (для этого можно использовать, например, <input type="hidden">, со значением, которое вы установили с помощью Javascript), или выполнив хотя бы один из POST как AJAX Публикация и последующая обработка результатов из AJAX Публикации таким образом, чтобы достичь конечной цели (о которой вы не предоставили нам много информации).

...