2017-01-18 3 views
2

so yeah ... Ich habe nach Informationen über die Verkabelung einer Dropdownliste gesucht, so dass es eine Funktion in der Steuerung mit in der asp.net MVC-Tool ausführen.Verdrahtung der Dropdown-Liste, um eine Funktion in einem Controller

$(function() { 
    $("#title").change(function() { 
     var selectedVal=$(this).val(); 
     $.getJSON("UserController/YourAction",{ id: selectedVal } , function(result) { 
      //Now you can access the jSon data here in the result variable 
     }); 
    }); 
}); 

Vorausgesetzt, dass Sie eine Aktionsmethode haben YourAction in Ihrem UserController genannt, die JSON zurückgibt

public ActionResult YourAction(int id) 
{ 
    //TO DO : get data from wherever you want. 
    var result=new { Success="True", Message="Some Info"}; 
    return Json(result, JsonRequestBehavior.AllowGet); 
} 

so, wenn ich diese verwenden es nichts zu tun ??? Ich weiß nicht, was json ist, aber ich weiß, ich brauche meine Anwendung keine Sache zurückzukehren ...

Also das, was versucht wurde ... In der Bearbeitungsform habe ich dieses Element:

$('#RES_TEST_ID').change(function() { 
    var CurVID = $(this).val(); 
    var IntVID = $(document.getElementById('BUVID')).val(); 
    //alert(CurVID); 
    //alert(IntVID); 
    debugger 
    $.getJSON("TEST_REQUESTController/CheckCTEST", { Int_TEST_ID: IntTID, Cur_TEST_ID: CurTID }, function (result) { 
    }); 
}); 

im Edit-Controller ... ich müde diesen Teil sowohl in der Post und Get Abschnitte als die Post nicht angegeben war, wo Sie diese in Ihrem Controller hinzufügen sollen:

public ActionResult CheckChangeTEST(int Int_TEST_ID, int Cur_TEST_ID) 
{ 
    if (Int_TEST_ID != Cur_TEST_ID) 
    { 
     var SelectedTEST = db.TEST_TEST_INFO.Find(Int_TEST_ID); 
     SelectedTEST.VI_STATUS = 1; 
     SelectedTEST = db.TEST_TEST_INFO.Find(Cur_TEST_ID); 
     SelectedTEST.VI_STATUS = 2; 
     var result = new { Success = "True", Message = "Some Info" }; 
     return Json(result, JsonRequestBehavior.AllowGet); 
    } 
    return null; 
} 

Für mich, passiert nichts. .. Ich versuche, Breakpoints zu sehen, aber sie gehen nie zum Controller. Wieder habe ich dies sowohl in den Post- als auch in den get-Abschnitt unter dem Bearbeitungssteuerelement gesetzt, da ich möchte, dass dies ausgeführt wird, wenn der Benutzer den Wert in der Dropdown-Liste ändert. Hat jemand Ideen, die sie teilen können, was hier vor sich geht?

+3

Wenn Ihr Controller ist 'UserController' und Ihre Methode ist' YourAction() ', dann muss die URL' 'User/YourAction'' sein, nicht' 'UserController/YourAction'') sondern immer '@ Url.Action (" YourAction "," User ")'' generieren die richtige URL Und einfach mit Ihren Browser-Tools, um Ihren Code zu debuggen würde es offensichtlich, dass Sie einen 404 Fehler –

+0

Hallo stephen ... Ich bekomme nicht einen Fehler 404 ist nur nicht zu debuggen, wenn ich debuggen die Javascript Debugs, aber nicht den Code hinter .... so weiß ich nicht, dass es die Funktion ruft ... Ich habe keine Ahnung, was ich tue, wenn ich ehrlich bin ... also ist es alles Lateinisch zu mir .. also sagst du benutzen @ und nicht fwd slash, was macht das @ wenn ich fragen kann? Vielen Dank für die Hilfe ... Ich werde all diese Vorschläge ausprobieren. Vielen Dank! – mcvdev

+0

Wenn Sie Ihre Browser-Entwickler-Tools (F12) öffnen und auf der Registerkarte Konsole sehen, würden Sie den Fehler sehen –

Antwort

0

In Ihrem Ajax-Aufruf an Ihren Controller müssen Sie Ihren Routenparameter für den Controller und für die Aktion korrigieren. Der Name "Controller" wird vom Framework automatisch verstanden. Wenn Sie also FooController hatten und die Methode zur Bar-Aktionsmethode verwenden wollten, wäre Ihr URL-Pfad "Foo/Bar".

$.getJSON("TEST_REQUESTController/CheckCTEST" ... 

sollte

$.getJSON("TEST_REQUEST/CheckChangeTEST" ... 

auch auf Ihre Aktion die Aktion mit dem Get Attribut Dekorateur dekorieren:

[HttpGet] 
public ActionResult CheckChangeTEST(int Int_TEST_ID, int Cur_TEST_ID) 
{ 
    //your code 
} 
+0

Hi justsomedude ... Ahh ok ... der Benutzer oben sagte, ich kann das @ auch ... Danke dafür ... Ich werde beides versuchen! Ich danke dir für die Hilfe !! Aus irgendeinem Grund kann ich dir keine +1 auf die Antwort geben ... das System weist meine Versuche zurück .... aber wenn ich könnte würde ich das ja +1 Danke! – mcvdev

Verwandte Themen