Como sabemos un elemento de tipo string tiene como valor por defecto 'null'. El ejemplo que vamos a analizar, utiliza MVC de .NET.
Tenemos un formulario que utiliza el método POST vía AJAX para enviar los campos hacia el controlador, es ahí donde el método de la acción recibe como parámetro el objeto.
Aquí el código que realiza la petición POST (los campos del
data pueden enviarse utilizando .serialize() y quedaría mejor el código, pero
continuemos...)
La clase implementa las propiedades de cada campo que
utilizamos en el formulario.
Dentro del controlador, tenemos la acción que recibe como parámetro
la clase que implementa los campos de nuestro formulario.
Vamos a realizar la primera petición dejando algunos campos vacíos,
y veremos cómo llega al parámetro de la acción del controlador.
Como podemos ver, la propiedad Phone2 tiene un valor null,
esto implicaría hacer una validación extra para verificar si la propiedad tiene
asignado un valor, primero validar si es diferente a nulo y posterior validar
si la propiedad contiene un valor.
Vamos a ver cómo podemos solucionar esto, primero haremos
uso de la clase DisplayFormatAttribute (que está dentro de System.ComponentModel.DataAnnotations).
Usando la propiedad ConvertEmptyStringToNull, que según la MSDN dice: Obtiene o
establece un valor que indica si los valores de cadena vacía ("") se
convierten automáticamente en nulo cuando el campo de datos se actualiza en el
origen de datos.
Aplicando este atributo a la propiedad, quedaría así:
Si volvemos a ejecutar nuestra aplicación, podemos ver el valor que ahora recibe la propiedad cuando el campo se envía como vacío.
Para mayor referencia tenemos a la MSDN con un ejemplo en la
siguiente dirección:
http://msdn.microsoft.com/en-us/library/system.componentmodel.dataannotations.displayformatattribute.aspx
Ailas....