Cómo establecer el valor por defecto de la caja de texto cadena vacía en lugar de null

Me puede estar fuera de fecha, pero en un principio me identifico es evitar nulos tanto como sea posible.

Sin embargo lo que he encontrado es que para que un establecimiento inflexible de tipos de vista en el que el usuario introduce las propiedades de un objeto que desea guardar, si algunos de los campos no entro en lo que se asigna como null.

Entonces cuando intenta guardar los cambios, falla la validación.

Así que en lugar de establecer cada propiedad a una cadena vacía, ¿cómo puedo establecer automáticamente cada TextBox en un formulario predeterminado a una cadena vacía en lugar de un valor nulo?

  • Siempre he encontrado evitar nulos tanto como sea posible una cosa extraña. Null es una cosa hermosa. En una tabla de base de datos de registro de la fila tiene una columna que acepta valores null y es null, se significa que no hay valor como siempre ha proporcionado antes. Este conocimiento es tan importante para las reglas de negocio y la lógica de las empresas que han encontrado una y otra vez.
  • Puedo ver los valores nulos son útiles a la hora de calcular un promedio de un rango de números. También nulos es bueno para las fechas que no se han introducido todavía. De lo contrario, ¿por qué es un null mejor que una cadena vacía o un cero? Todo lo que parece hacer es generar más de la caldera de la placa de código para detener el no deseados nullreference excepciones.
  • Que es un buen punto, aunque en lugar de comprobar si el valor es nulo en la mayoría de los mismos lugares, para evitar los indeseados null excepciones de referencia, que son la comprobación de si!!!EmptyString). La referencia de objeto null excepciones llegar a viejo, pero que podría ser un buen nivel de «control de calidad/pruebas». Cadena vacía pasa, no es la excepción, pero no debe estar vacía, null dispara una excepción y por lo tanto un desarrollador descubre errores más rápido, tal vez. Es divertida, odio ver a la cadena vacía columnas en Sql Select resultados lol
  • Posibles duplicados de ¿por Qué obtengo null en lugar de cadena vacía al recibir la solicitud POST de Vistas Razor?
  • Le pregunté a la primera pregunta, entonces la otra pregunta puede ser un duplicado de la mina.
InformationsquelleAutor arame3333 | 2010-08-13

4 Kommentare

  1. 56

    Usted podría poner el siguiente atributo en su cadena de propiedades en el modelo:

    [DisplayFormat(ConvertEmptyStringToNull=false)]

    Así que cada vez que alguien publica un formulario vacío con campos de texto, estas serán una cadena vacía en lugar de null…

    • es que, lo que estoy buscando. Gracias @Yngve B. Nilsen
  2. 2

    Para ser honesto, yo diría que su metodología de codificación está fuera de fecha y deficiente. Usted debe manejar todas las posibilidades, no es difícil. Eso es exactamente lo que string.IsNullOrEmpty(value); es para.

    Estoy adivinando su lógica de validación es algo así como:

    if (value == string.Empty) { isValid = false; } 

    Por lo que no se manejan los valores null. Usted debe sustituir a la verificación por lo que también se verifica para los valores null.

    string value1 = null;
    string value2 = string.Empty;
    
    string.IsNullOrEmpty(value1); //true
    string.IsNullOrEmpty(value2); //true
    • Puedo ver mi pregunta no está clara. Estoy en busca de una respuesta que ver con los metadatos o una extensa plantilla. Este es un MVC pregunta en lugar de una C# pregunta.
    • Publicar el código de la pregunta para que podamos ver lo que está tring a hacer.
    • No estoy seguro de qué código se lo puedo mostrar. Tengo algunos cuadros de texto en la Vista, y si el usuario no introduce un valor antes de la presentación, el valor predeterminado es null. Si los campos en el modelo subyacente NO son anulables, esto hace que la validación falle. He encontrado una respuesta basada en esta cuestión, por LO que; stackoverflow.com/questions/1718501/… en Lugar de recortar la acabo de crear una cadena nula a una cadena vacía. Estoy satisfecho con esta respuesta, pero tal vez hay uno más fácil?
  3. 1

    Que me encontré con este problema cuando se trata de un antiguo servicio que requiere cadenas vacías. He creado un método de extensión:

    public static string GetValueOrDefault(this string str)
            {
                return str ?? String.Empty;
            }

    Así que usted puede utilizar esta opción cuando desee asegurarse de que las cadenas que son nulas de convertirse en vacío

    yourString1.GetValueOrDefault();
    yourString2.GetValueOrDefault();

Kommentieren Sie den Artikel

Bitte geben Sie Ihren Kommentar ein!
Bitte geben Sie hier Ihren Namen ein

Pruebas en línea