Utiliser Ajax et JsonResult dans ASP.NET MVC 3

J'ai besoin d'obtenir de la chaîne de tableau ou de la liste avec l'ajax et de l'Action, c'est ma mise en Œuvre:

C'est mon Dom html de vue de l'action "Index" dans AccessMenuController:

<div class="RoleAccess">
   <select name="RoleDropDown">
    <option value="0">Select Role</option>
    <option value="61AD3FD9-C080-4BB1-8012-2A25309B0AAF">AdminRole</option>
    <option value="8A330699-57E1-4FDB-8C8E-99FFDE299AC5">Role2</option>
    <option value="004E39C2-4FFC-4353-A06E-30AC887619EF">Role3</option>
   </select>
</div>

Mon Contrôleur:

namespace MyProject.Areas.GlobalAccess.Controllers {

public class AccessMenuController : Controller {

    public ActionResult Index() { return View();}

    [HttpPost]
    public JsonResult RoleDropDownChanged(string roleId) {

     Guid RoleId = new Guid(roleId);

    //Some implement

    List<string> actions = new List<string>();
    for(int i = 0; i <= 10; i++) 
            actions.Add(i.ToString());

return Json(actions.ToArray(), JsonRequestBehavior.AllowGet);

   }
  }
}

et le script:

$(document).ready(function () {

//Handle Checks of Actions by RoleName Changed
$('div.RoleAccess select').change(function () {
    RoleChangeHandler();
});

function RoleChangeHandler() {

    $.ajax({
        url: '@Url.Action("RoleDropDownChanged")',
        type: 'POST',
        data: { 'roleId': '61AD3FD9-C080-4BB1-8012-2A25309B0AAF' },
        dataType: 'json',
        processData: false,
        contentType: 'application/json; charset=utf-8',
        success: function (data) { SuccessRoleChangeHandler(data); },
        error: OnFailRoleChangeHandler
    });
    return false;
}


function SuccessRoleChangeHandler(data) {

    alert("in success role change");

}

function OnFailRoleChangeHandler(result) {
    alert('in OnFailRoleChangeHandler');

}

Et le problème est avec tous les changements de la liste déroulante juste Onfail fonction de courir et de m'avertir "dans OnFailRoleChangeHandler", aussi j'ai vérifier le RoleDropDownChanged Action avec point d'arrêt et que jamais couru, où est le problème?

Mise à JOUR

lorsque je charge la page par google chrome il y a une erreur dans la fenêtre de la console:
http://MyProject/GlobalAccess/AccessMenu/@Url.Action(%22RoleDropDownChanged%22) 404 (Not Found) jquery-1.7.1.js:8102

Lorsque vous déboguez, est-ce que votre serveur méthode lève une exception? Avez-vous essayé de débogage du code javascript?
si vous avez ce @Url.Action(%22RoleDropDownChanged%22) que votre script n'est pas analysé par le Moteur de Rasoir. Si vous pouvez vous pourriez mettre le script à l'intérieur d'un rasoir vue et pas dans un autre .js-fichier.
- Je mettre à jour Question
Si votre script réside dans une .fichier js alors ce n'est pas d'aller travailler. Où est votre script déclaré?

OriginalL'auteur Saeid | 2012-03-29