La llamada ajax de JQuery a la acción MVC siempre devuelve un error cuando no hay uno

Esta es una aplicación MVC3. Tengo la siguiente llamada de javascript a mi acción:

 function editDescription(docId,fileName, fileDescription) {
    $.ajax({
         type: "POST",
         url: "/OrderDetail/LoadModelData",
         contentType: "application/json; charset=utf-8",
         data: "{'id': '"+docId +"', 'filename': '"+fileName+"', 'description': '"+fileDescription+"'}",
         dataType: "json",
         success: function (result) {
         alert("ok: "+ result.d);
         },
         error: function (result) {
             alert('Oh no: '+ result.responseText);
         }
     });

Aquí está mi acción:

    [HttpPost]
    public string LoadModelData(string id, string filename, string description)
    {
        return filename;
    }

Ejecuto el código, la acción se llama con los parámetros, nada es nulo, pero la función de error se llama cada vez. Entonces, el cuadro de alerta con 'Oh no' aparece cada vez, pero la cadena que se devuelve de la acción es correcta. Si el nombre del archivo es test.pdf, el cuadro de alerta de error dice

    'Oh No: test.pdf'. 

Miré en Firebug y no hay errores. ¿Por qué no se llama a la función de éxito a pesar de que no hay errores?

Respuestas a la pregunta(2)

Su respuesta a la pregunta