1

I have this form

  <form method="post" data-ajax="true" data-ajax-method="post" asp-action="Requests" asp- 
    controller="Home">

   <select id="Records" class="form-control col-lg-12"> <option value="0" selected>--Choose-- 
   </option> 
   <option value="1">All records</option>
   <option value="2">Per User</option> </select> 
   <input type="submit" value="Go" class="btn btn-success"/> 
   </form>

I need to pass the selected value to controller,then to do some checks and then to reload my data. How can I pass the value 1 or 2 to controller? Any idea? thank you

mj1313
  • 7,930
  • 2
  • 12
  • 32
touinta
  • 971
  • 3
  • 10
  • 26

2 Answers2

2

You should add a name attribute to the select element. such as name="records" like below

<form method="post" data-ajax="true" data-ajax-method="post" asp-action="Requests" asp-
      controller="Home">

    <select id="Records" name="records" class="form-control col-lg-12">
        <option value="0" selected>
            --Choose--
        </option>
        <option value="1">All records</option>
        <option value="2">Per User</option>
    </select>
    <input type="submit" value="Go" class="btn btn-success" />
</form>

And the controller should accept a parameter with the same name.

public IActionResult Requests(int records)
{

    return View();
}

Result:

enter image description here

mj1313
  • 7,930
  • 2
  • 12
  • 32
0

if you want to send a single value you can use

asp-route-

example :

<form asp-controller="Chat" asp-action="Details" asp-route-id="@senderId" id="messageBox" method="get" 
          data-ajax="true"
          data-ajax-mode="replace-with"
          data-ajax-loading="#spinner"
          data-ajax-methode="GET">
Ali Mahmoodi
  • 858
  • 10
  • 14