Tengo una acción de controlador que hace algo de trabajo en la base de datos y luego sale cuando está terminada. Esta acción se está llamando a través de la función ajax de jQuery con el tipo de datos establecido en 'json'.ASP.NET MVC - Manera correcta de manejar acciones ajax sin objeto devuelto
Si configuro el tipo de devolución de la acción a anular, todo funcionará bien, excepto que Firefox mostrará un error en la consola que dice: "no se encontró ningún elemento".
Tiene sentido que Firefox arroje este error si esperaba que XML volviera. Sin embargo, incluso cuando cambio la propiedad dataType de la llamada ajax a "texto", todavía recibo el error. Para deshacerse del error con el tipo de retorno void, tendría que configurar ContentType de respuesta a "text/html". O podría establecer el tipo de devolución a JsonResult y devolver un nuevo objeto JsonResult [vacío].
Estoy seguro de que hay varias maneras en que puedo hacer que este error desaparezca, pero quería saber la forma correcta de manejar las acciones sin que se invoquen valores de retorno a través de ajax.
Si es importante, también estoy usando el patrón de acción de controlador asíncrono.
public void DoSomethingAsync(SomeJsonObjectForModelBinding model)
{
// do some database things
}
public void DoSomethingCompleted()
{
// nothing to do...
// what should my return type be?
// do I need to set the content type here?
}
+1 para siempre devolver el éxito o el error, realmente necesario en la medida en que funciona el modo js. –
No veo lo que esto te compra en absoluto. Un estado de http siempre será devuelto por el servidor de todos modos. Usted está abogando por jpassing json datos serializados para el cliente a pesar de que * usted sabe que nunca será leído *. ¿Cuál es el punto de? – fearofawhackplanet
Bueno, hay comentarios a nivel de sistema, y luego hay comentarios a nivel de aplicación. Puede tener una ejecución exitosa de AJAX, pero no tendría idea si algo salió mal en el servidor dentro de su aplicación. – Kon