2010-03-03 16 views
35

Envié un formulario a través de jquery, pero necesito el ActionResult para devolver verdadero o falso.return bool de asp.net mvc actionresult

este es el código que para el método de control:

[HttpPost] 
    public ActionResult SetSchedule(FormCollection collection) 
    { 
     try 
     { 
      // TODO: Add update logic here 

      return true; //cannot convert bool to actionresult 
     } 
     catch 
     { 
      return false; //cannot convert bool to actionresult 
     } 
    } 

¿Cómo voy a diseñar mi llamada jQuery a suceder que los datos del formulario y también comprobar si el valor de retorno es verdadera o falsa. ¿Cómo edito el código de arriba para devolver verdadero o falso?

+7

AMO los simples, se reducía ejemplo, que expunges todo código irrelevante. Ojalá el 95% de las demás personas, incluidos los escritores de libros, hagan lo mismo. –

+0

@Eclipsoft Quizás alguien con influencia pueda discutir la idea en meta si no se ha cubierto. – MrBoJangles

Respuesta

64

Puede devolver un resultado json en forma de un bool o con una propiedad bool. Algo como esto:

[HttpPost] 
public ActionResult SetSchedule(FormCollection collection) 
{ 
    try 
    { 
     // TODO: Add update logic here 

     return Json(true); 
    } 
    catch 
    { 
     return Json(false); 
    } 
} 
+3

+1, * archivos que en su memoria para uso futuro * –

+2

+1, usted es un héroe – Eddie

4

mi humilde opinión se debe utilizar en lugar de JsonResultActionResult (para el mantenimiento de código).

para manejar la respuesta en el lado Jquery:

$.getJSON(
'/MyDear/Action', 
{ 
    MyFormParam: $('MyParamSelector').val(), 
    AnotherFormParam: $('AnotherParamSelector').val(), 
}, 
function(data) { 
    if (data) { 
    // Do this please... 
    } 
}); 

creo que sirve:)

+1

¿De qué manera el uso de un resultado Json en lugar de un ActionResult hace que el código sea más fácil de mantener? AFAIK el tipo de resultado que use solo afectará el tipo de salida que el navegador espera. – JoseMarmolejos

+1

@JoseMarmolejos Hola José, te recomiendo que devuelvas el tipo más derivado que puedas en tus métodos, porque te permite usar los métodos derivados y las propiedades del tipo de devolución sin un lanzamiento controlado cuando sea necesario. lo mismo aplica para eventos. Por otro lado debido a la regla de covarianza, ambas opciones son las mismas para el uso de delegados;) +1 – SDReyes

2

¿Qué tal esto:

[HttpPost] 
public bool SetSchedule(FormCollection collection) 
{ 
    try 
    { 
     // TODO: Add update logic here 

     return true; 
    } 
    catch 
    { 
     return false; 
    } 
} 
+2

Esto devuelve la cadena "True", por lo que falla una comprobación booleana, por ej. if (data === true), a diferencia del enfoque JSON. – StuartQ

Cuestiones relacionadas