jQuery AJAX fonctionne pour revenir mvc 3 vue partielle, mais jQuery charge n'est pas

Je suis en train de remplir un div avec une vue partielle en MVC 3. Mon contrôleur ressemble à ceci:

[HttpPost]
public ActionResult GetCustomerList(string searchString)
{
    var custService = new CustomerViewModels();
    var custListVM = custService.GetSearchList(searchString);

    return PartialView("GetCustomersList", custListVM);
}

et mon jQuery appel ressemble à ceci:

function getCustomerList(searchCriteria) {
    $.ajax({
        url: 'Home/GetCustomerList',
        type: 'POST',
        async: false,
        data: { searchString: searchCriteria },
        success: function (result) {
            $("#customerTabBody").html(result);
        }
    });
};

Il fonctionne très bien. J'ai commencé à me demander si je pouvais utiliser la méthode load de jQuery pour faire la même chose avec beaucoup moins de code et a écrit ceci:

function getCustomerList(searchCriteria) {
    $("#customerTabBody").load('Home/GetCustomerList', { searchString: searchCriteria });
};

Il renvoie un message d'erreur indiquant que la ressource ne peut pas être trouvé. J'ai essayé à l'aide de @Url.L'Action, mais il encode le même contrôleur que j'ai codé en dur. Dans Firebug, je peux voir que l'URL qui est affiché est le même et le paramètre searchString est au format identique dans les deux cas.

Quelle est la différence - pourquoi ne charge pas de travail?

Grâce

  • Pourquoi vous mettez-vous async: false dans le $.appel ajax?
  • J'ai besoin de garder à l'utilisateur de continuer à se taper des caractères et pendant que j'attends la réponse.
InformationsquelleAutor BKahuna | 2011-07-25