2017-06-02 4 views
0

Ich habe html wie folgt aus:Senden Parameter ausgewählter Werte an die Steuerung

HTML

<div class="col-md-3 col-sm-12"> 
    <div> 
    <p>Región</p> 
    <select id="lstRegion" class="form-control agenda_space" aria-hidden="true"></select> 
    </div> 
    <div> 
    <p>Solicitud</p> 
    <select id="lstSolicitud" class="form-control agenda_space" aria-hidden="true"> </select> 
    </div> 
    <br/> 
    <div> 
    <a href="javascript:;" id="event_add" class="btn green"> Actualizar Filtro </a> 
    <br/> 
    </div> 

JS:

$("#lstRegion") 
       .getJSONCatalog({ 
        onSuccess: function (response) { 
         console.log(response); 
        }, 
        url: '/Agenda/GetRegion', 
        valueProperty: "ID", 
        textProperty: "valor" 
       }); 
     //Load solicitud dropdown 
     $("#lstSolicitud") 
       .getJSONCatalog({ 
        url: '/Agenda/GetSolicitud', 
        valueProperty: "ID", 
        textProperty: "solicitud" 
       }); 

Controller:

Sie funktionieren gut Ich bekomme meine dropdwon-Listen sehr gut, aber jetzt möchte ich eine GET-Aktion mit ausgewählten Werten von jedem Dropdown, wenn meine <a href="javascript:;" id="event_add" class="btn green"> Actualizar Filtro </a> es geklickt hat.

Aber ich bin wirklich neu in asp.net und ich weiß nicht, was ich tun muss, um ausgewählte Werte zu erhalten und an den Controller zu senden.

Wie es googeln fand ich brauche ich Methode in meinen Controller zu tun Werte so zu erhalten:

-Controller wird:

public ActionResult GetTareas(string lstRegionValue, string lstsolicitudValue) 
     { 
     } 

Aber ich weiß nicht, wie sie über JS zu schicken, Wie kann ich das tun, um ausgewählte Parameter in meinen Controller zu bekommen? Grüße

UPDATE Ich versuche es mit Ajax wie:

$.ajax({ 
    type: 'GET', 
    url: '@Url.Action("Agenda", "GetTareas")', 
    data: { region: $('#lstRegion option:selected').html(), solicitud: $('#lstSolicitud option:selected').html() }, // pass the value to the id parameter 
    dataType: 'json', 
    success: function (data) { 
     console.log(data); 
    }}); 

Aber wie kann ich diese Funktion auslösen, wenn event_add geklickt wird?

+0

Verwenden Sie getJ SON (http://api.jquery.com/jquery.getjson/) und übergeben Sie die Parameter in den "Daten". Die Funktionalität in Ihrem C# -Code funktioniert auf die gleiche Art und Weise, json zurücksendend – Simon

+0

Können Sie mein Update überprüfen? @Simon – Loan

+0

Um es zu nennen wickeln Sie es in einer Funktion und rufen Sie die Funktion aus dem A href. Ich würde auch vorschlagen, die Auswahlwerte in Variablen zu setzen (einfacher zum Debuggen). Vielleicht möchten Sie lieber den Wert als den HTML-Code von der Auswahl auch. – Simon

Antwort

0

Um Ihren aktualisierten Ajax-Code beim Klicken auszuführen, fügen Sie #event_add hinzu, klicken Sie auf den Ereignishandler und führen Sie Ihren Code darin aus.

$('#event_add').click(function(e){ 
    e.preventDefault(); //suppress default behavior 
    $.ajax({ 
    type: 'GET', 
    url: '@Url.Action("Agenda", "GetTareas")', // don't hard code your urls 
    data: { region: $('#lstRegion option:selected').html(), solicitud: 
    $('#lstSolicitud option:selected').html() }, // pass the value to the id parameter 
    dataType: 'json', // your returning a view, not json 
    success: function (data) { 
     console.log(data); 
    }}); 
}); 
+0

Ich versuche es, aber ich bekomme 'http: // localhost: 50367/Gestion/@Url.Action (% 22Agenda% 22,% 20% 22GetTareas% 22)? Region = Norte & Solicitud = Folio% 3A + 2' in Chrom-Konsole warum es passiert? – Loan

0

Hallo Versuchen Sie, die folgenden aktualisierten Code:

$('#event_add').click(function(e){ 
    var regionval = $('#lstRegion option:selected').html(), 
    var solicval = $('#lstSolicitud option:selected').html(), 

    $.ajax({ 
    type: 'GET', 
    url: '@Url.Action("Agenda", "GetTareas", new { lstRegionValue = regionval, lstsolicitudValue =solicval})', 
    }); 
}); 

Anmerkung: Ich habe nicht den Code testen, hoffen aber, dass es für Sie

Controller-Code sollte funktionieren:

public ActionResult GetTareas(string lstRegionValue, string lstsolicitudValue) 
     { 
     } 

Ich hoffe es hilft, danke

Verwandte Themen