如何将多个输入文本值传递给控制器​​中的方法

How to pass multiple input text value to method in controller

我有 3 个文本框,我想将在那里输入的值发送到控制器方法

<input class="form-control" type="text" id="id" name="id">
<input class="form-control" type="text" id="id1" name="id1">
<input class="form-control" type="text" id="id2" name="id2">

@Html.ActionLink("Send", "MethodNameInController", "ColtrollerName", new { id= $('#id').val(), 
id1= $('#id1').val(), id2= $('#id2').val()})

并在控制器中 publicActionResult MethodNameInController(int id, string id1, string id2) { //这里有一些文字 }

但它正在发送空值

如果您想在同一视图上停留或在之后重定向到另一个 url,请尝试使用 ajax 调用将值传递给控制器​​,而不是使用 @Html.ActionLink()

function submitAjax(){

        //purely for readability
        var id = $('#id').val();
        var id1 = $('#id1').val();
        var id2 = $('#id2').val();

        //ajax call
        $.ajax({
        url: "/ControllerName/MethodNameInController",
        data: { id: id, id1: id1, id2: id2 },
        success: function (result) {
            //handle something here
        }
    });
};
<input class="form-control" type="text" id="id" name="id">
<input class="form-control" type="text" id="id1" name="id1">
<input class="form-control" type="text" id="id2" name="id2">

<button type="button" onclick="submitAjax()">submit</button>

如果该方法进行了一些处理,然后 returns 您会看到不同的视图,您可以提交表单。

function submitForm(){
      var $form = $("#idForm");
      //optional validation
      
      $form.submit();
};
<form id="idForm" class="form-horizontal" asp-controller="ControllerName" asp-action="MethodNameInController" >
  <input class="form-control" type="text" id="id" name="id">
  <input class="form-control" type="text" id="id1" name="id1">
  <input class="form-control" type="text" id="id2" name="id2">

  <!-- type="button" prevents the from from submitting so you can do validation checks in the js -->
  <button type="button" onclick="submitForm()">submit</button>
</form>

我使用 ajax 得到了解决方案,只是想知道有没有直接的解决方案

$(function () {
    $('#receipt').unbind('click');
    $('#receipt').on('click', function () {
        $.ajax({
            url: "/Controller/Method",
            type: 'POST',
            contentType: "application/json; charset=utf-8",
            dataType: 'json',
            data: JSON.stringify({
                fromDate: $("#fromDate").val(),
                toDate: $("#toDate").val(),
                id: $("#id").val()
                
            }),
            async: false
        });
    });
});