I am using an ajax call to retrieve data. The ajax call does not seem to get to the controller and I am getting an error saying undefined
My ajax call on change of dropdown
$(document).ready(function () {
    $('body').on('change', '#qualificationDrpdown', function () {
        alert($("#qualificationDrpdown").val())
        $.ajax({
                type: "GET",
                url: "Home/SelectStudyModes",
                contentType: "application/json; charset=utf-8",
                data: { "p": $("#qualificationDrpdown").val() },
                //data: { "p": "2" },
                dataType: "json",
                success: function (result) {
                    alert(result.data); 
                    alert("success");
                    $("#modesDrpdown").html(""); // clear before appending new list
                    $.each(studyModes, function (i, result) {
                        $("#modesDrpdown").append(
                            $('<option></option>').val(result.Id).html(result.StudyModeName));
                    });
                },
                error: function (result) {
                    alert('error:(' + result[0]);
                }
            });
        })
  });
My controller
[HttpGet]
public ActionResult SelectStudyModes(string p)
{
        int qualificationId = Convert.ToInt32(p);
        var Qualifications = app.GetQualifications();
        var StudyModes = Qualifications.Find(q => q.QualificationId == qualificationId).StudyModes;
        //GetStudymodeByQualificationID(qualificationId);
        ViewBag.name = p;
        return Json(StudyModes, JsonRequestBehavior.AllowGet);
}