Nancy pasa mi secuencia de consulta y valores de formulario a mis controladores a través de una variable dynamic
. El siguiente ejemplo muestra los valores de formulario que se pasan a un manejador de POST a través de la solicitud de Nancy, p. Request.Form.xxx
.NancyFX: ¿Cómo puedo verificar si los valores de query-string/form se han pasado correctamente a mi controlador?
Handler
Post["/"] = _ =>
{
var userId = (string) Request.Form.userid;
if (userId.IsEmpty()) return HttpStatusCode.UnprocessableEntity;
return HttpStatusCode.OK;
};
Se puede ver que yo echo la userid
en una cadena y luego usando un método de extensión de cadena para comprobar si el valor es una cadena nula o vacía (equivalente a string.IsNullOrEmpty()
).
Lo que preferiría es tener el método de extensión en el tipo dinámico para poder realizar mis verificaciones de cordura antes de hacer cualquier otra cosa. Quiero código como este:
if(Request.Form.userid.IsEmpty()) return HttpStatusCode.UnprocessableEntity;
Sin embargo, no se puede tener métodos de extensión para dynamic
tipos. Además, no puede verificar la presencia de una propiedad a través de la reflexión. Bienvenido al DLR.
Pregunta
¿Cuál es la manera más fácil, más segura para realizar comprobaciones previas para asegurar que los valores de consulta/forma esperados se han pasado al manejador de Nancy?
Gracias