MVC: pass parameter Aktion mit Jquery.ajax()

Bin ich ziemlich neu MVC. Ich brauche, um ajax Aufruf einer Action mit Parametern mit html.Action(). Ich bin nicht in der Lage zu gehen..

Hoffe, es wird hilfreich sein für andere MVC begineers.

HTML:

<%: Html.ActionLink("Add Race", "AddRace", 
        new {eventId = Model.EventId, fleetId=Model.SelectedFleet.ID}, 
        new{@onclick=string.Format("return checkFleetAddedandScroing()")}) %>

Jquery:

 function checkFleetAddedandScroing() {
        debugger;
        $.ajax({
            type: "GET",
            url: '<%=Url.Action("CheckFleetExists")%>',
            dataType: "json",
            cache: false,
            success: function (data, textStatus) {
                data = eval("(" + data + ")");
                if (data == true) {
                    return true;
                }
                else {
                    alert("Cannot Add race becasue you have not yet added any fleets and fleet scoring is checked.");
                    return false;
                }
            }, //success
            error: function (req) {

            }
        });           
    }

Aktion:

  public JsonResult CheckFleetExists(Guid fleetId )
    {
        bool exists = false;
        try
        {
            exists = !db.Races.Any(r => r.FleetID == fleetId);
        }
        catch
        {
        }
        return Json(exists, JsonRequestBehavior.AllowGet);
    }

Muss ich weiterleiten fleetid zu handeln, die in Model.SelectedFleet.ID. Deren Einsatz irgendwo auf den Seiten. Aber ich bin nicht in der Lage zu verwenden, irgendwie..

bitte vorschlagen, wo ich falsch mache...

haben Sie überprüft, ob Ihre Aktion auf?
Nein..nicht schlagen...sondern es zeigt die Warnmeldung, die ist geschrieben in der else-Teil zum Erfolg.
Es ist nicht getroffen, denn die Aktion CheckFleetExists wird immer false zurück, und Ihre JavaScript-Funktion immer false zurück als gut. Wo oder wie sind Sie mit der Weitergabe einer GUID CheckFleetExists?
ich glaube, Sie haben zwei Fehler, einen Vorschlag durch agarhy.und die zweite ist das @ - Zeichen vor dem onclick.
Und, by the way, es gibt einen Grund, warum die Json Methode nicht standardmäßig erlauben für GET-Anforderungen. Es ist zu verhindern, dass hijacking. Betrachten Sie eine POST-Anfrage für die JSON-Daten statt.

InformationsquelleAutor Mayank Pathak | 2012-10-27

Schreibe einen Kommentar