2017-02-26 6 views
0

ich diese Kontrollkästchen haben, deren Wert ich bin immer JQuery mitPass Variable von JavaScript-Controller

<div> 
    <p> Type: 
     <label> 
      <input type = "checkbox" name = "types[]" class="filterType" value="Single"/>Single 
     </label> 
     <label> 
      <input type = "checkbox" name="types[]" class="filterType" value="Double"/>Double 
     </label> 
     <label> 
      <input type = "checkbox" name="types[]" class="filterType" value="Suite" />Suite 
     </label> </p> 

    <input type="submit" value="filter" onclick="exefunction()" /> 
</div> 


<script> 
function exefunction() { 
     var checkedVals = $('.filterType:checkbox:checked').map(function() { 
      return this.value; 
     }).get(); 
     var typesAtt=checkedVals.join('-'); 
     } 
</script> 

Wie kann ich übergeben Sie die typesAtt Variable auf meine RoomController wo ich Filter aus der Datenbank anwenden können. Dies ist die Index.cshtml Ansicht

Antwort

0

Das gleiche wie bei allem. Sie machen einfach http-Anfrage und übergeben, was Sie wollen (als Abfrageparameter oder Teil des Körpers im Falle einer POST-Anfrage).

Wenn Sie eine Ajax-Anfrage mit jquery machen, müssen Sie einen Handler in Ihre Frontend-Anwendung schreiben.

+0

Ich verstehe nicht, wie man mit HTTP-Anforderung zu tun. –

+0

Machen Sie eine einfache Weiterleitung. Ihre Aktionsmethoden sind Endpunkte. – Erndob

0

Sie müssen die Eingabeelemente in einem Formular-Tag aufbewahren und die richtigen Eingabeelementnamen verwenden.

@using(Html.BeginForm("Filter","Home")) 
{ 
    <div> 
     <p> 
      Type: 
      <label> 
       <input type="checkbox" name="types" value="Single" />Single 
      </label> 
      <label> 
       <input type="checkbox" name="types" value="Double" />Double 
      </label> 
      <label> 
       <input type="checkbox" name="types" value="Suite" />Suite 
      </label> 
     </p>  
     <input type="submit" value="filter" /> 
    </div> 

} 

Jetzt in Ihrer Filteraktion Methode können Sie einen Parameter types genannt haben, die ein String-Array-Typ ist.

Wenn der Benutzer das Formular absendet, wird der types-Parameter mit dem Wert der ausgewählten Kontrollkästchen ausgefüllt. Wenn der Benutzer beispielsweise "Single" und "Suite" auswählt, ist der types-Parameter ein String-Array mit 2 Elementen "Single" und "Suite"

Die wichtige zu beachtende Sache ist, dass der Name des Eingabeelements mit dem übereinstimmt der Name der Aktionsmethode.

0

Auf Client-Seite:

$.post("YourUrl",typesAtt,function(){ 
}) 

Auf Server-Seite:

[HttpPost] 
public ActionResult YourActionName(string data) 
{ 

}