7 messaggi dal 22 marzo 2018
Buongiorno a tutti,

Ho creato una piccola applicazione tramite ASP.NET CORE + Razor Pages, ( il tutto seguendo un articolo trovato sul Web.

E' proprio una cosa molto semplice, tuttavia ci sono un paio di cose che non riesco a risolvere, cioè:

1) Diciamo che non so come fare per visualizzare i Titoli dei film immessi in formato "Title case"

L'altra richiesta la farò dopo aver risolto quella appena fatta.

Grazie di Cuore a chi vorrà rispondermi

Un cordiale saluto

Simone48

Simone48
11.886 messaggi dal 09 febbraio 2002
Contributi
Ciao Simone,
trovi un algoritmo qui:
https://www.dotnetperls.com/uppercase-first-letter
Guarda in particolare la funzione "UppercaseWords".

ciao,
Moreno

Enjoy learning and just keep making
7 messaggi dal 22 marzo 2018
BrightSoul ha scritto:
Ciao Simone,
trovi un algoritmo qui:
https://www.dotnetperls.com/uppercase-first-letter
Guarda in particolare la funzione "UppercaseWords".

ciao,
Moreno

Simone48
7 messaggi dal 22 marzo 2018
Ciao Moreno,

Grazie mille per la risposta, ho già individuato il Sito tramite il tuo Link, ora leggo tutto
e poi provo a vedere se riesco nel mio intento, in caso contrario magari scrivi ancora.

Grazie
Simone

Simone48 ha scritto:
BrightSoul ha scritto:
Ciao Simone,
trovi un algoritmo qui:
https://www.dotnetperls.com/uppercase-first-letter
Guarda in particolare la funzione "UppercaseWords".

ciao,
Moreno

Simone48
7 messaggi dal 22 marzo 2018
andrea.tosato86 ha scritto:
Segnalo anche questo: https://github.com/Humanizr/Humanizer



Buongiorno Andrea,

Grazie per il Link.

Le dirò che anche con la quantità di informazioni gentilmente ricevute non sono in grado
di capire come e soprattutto dove impostare la famosa "TiTleCase".

Penso abbiate recepito che state parlando con uno che sicuramente ha pochissima esperinza
in questo campo.

Comunque: inserisco il codice dove penso di dover intervenire


using System;
using System.ComponentModel.DataAnnotations;
namespace ArchivioFilm.Models
{


    public class Film
    {
       
        public int ID { get; set; }

        [StringLength(60, MinimumLength = 3)]
        [Required]
        public string Titolo { get; set; }

        [Display(Name = "Data Uscita"), DataType(DataType.Date)]
        public DateTime DataUscita { get; set; }

        [RegularExpression(@"^[A-Z]+[a-zA-Z""'\s-]*$"), Required, StringLength(30)]
        public string Genere { get; set; }

        [DataType(DataType.Currency)]
        public Decimal Prezzo { get; set; }

        [RegularExpression(@"^[A-Z]+[a-zA-Z""'\s-]*$"), StringLength(5)]
        public string Valutazione { get; set; }
     }
 }


io pensavo che questa fosse la parte di codice interessata, ma in nessun modo
sono riuscito a risolvere.

Mi rendo conto che chiedo molto, ma haimè cosi è.

Se qualcuno può illuminarmi le sarò grato.

Un caro saluto a tutti voi e tantissimi Auguri di Buona Pasqua

Simone

Simone48
11.886 messaggi dal 09 febbraio 2002
Contributi
Ciao Simone, Buona Pasqua anche a te!
Ci sono varie soluzioni possibili affinché il titolo venga mostrato come desideri tu. Vuoi fare la trasformazione quando il titolo viene visualizzato? Oppure subito prima che venga inserito nel database?

Questa è una possibile soluzione. A prescindere dalla stringa che viene assegnata alla proprietà Titolo, verrà sempre restituito il titolo "Title Case".

using System;
using System.ComponentModel.DataAnnotations;
namespace ArchivioFilm.Models
{
  public class Film
  { 
    public int ID { get; set; }
    
    private string _titolo;
  
    [StringLength(60, MinimumLength = 3)]
    [Required]
    public string Titolo {
      get {
        return UppercaseWords(_titolo ?? "");
      }
      set {
        _titolo = value;
      }
    }
  
  private static string UppercaseWords(string value)
    {
        char[] array = value.ToCharArray();
        // Handle the first letter in the string.
        if (array.Length >= 1)
        {
            if (char.IsLower(array[0]))
            {
                array[0] = char.ToUpper(array[0]);
            }
        }
        // Scan through the letters, checking for spaces.
        // ... Uppercase the lowercase letters following spaces.
        for (int i = 1; i < array.Length; i++)
        {
            if (array[i - 1] == ' ')
            {
                if (char.IsLower(array[i]))
                {
                    array[i] = char.ToUpper(array[i]);
                }
            }
        }
        return new string(array);
    }
    
    [Display(Name = "Data Uscita"), DataType(DataType.Date)]
    public DateTime DataUscita { get; set; }
    
    [RegularExpression(@"^[A-Z]+[a-zA-Z""'\s-]*$"), Required, StringLength(30)]
    public string Genere { get; set; }
    
    [DataType(DataType.Currency)]
    public Decimal Prezzo { get; set; }
    
    [RegularExpression(@"^[A-Z]+[a-zA-Z""'\s-]*$"), StringLength(5)]
    public string Valutazione { get; set; }
  }
}

Modificato da BrightSoul il 30 marzo 2018 19.41 -

Enjoy learning and just keep making
7 messaggi dal 22 marzo 2018
Buongiorno Moreno,

Grazie mille, è esattamente ciò che cercavo, funziona alla perfezione, le dirò che senza il vostro aiuto
forse nel 2020 avrei risolto.

Ringrazio tutti coloro che mi hanno aiutato !!!

Buona Pasqua a tutti !!!

Simone


BrightSoul ha scritto:
Ciao Simone, Buona Pasqua anche a te!
Ci sono varie soluzioni possibili affinché il titolo venga mostrato come desideri tu. Vuoi fare la trasformazione quando il titolo viene visualizzato? Oppure subito prima che venga inserito nel database?

Questa è una possibile soluzione. A prescindere dalla stringa che viene assegnata alla proprietà Titolo, verrà sempre restituito il titolo "Title Case".

using System;
using System.ComponentModel.DataAnnotations;
namespace ArchivioFilm.Models
{
  public class Film
  { 
    public int ID { get; set; }
    
    private string _titolo;
  
    [StringLength(60, MinimumLength = 3)]
    [Required]
    public string Titolo {
      get {
        return UppercaseWords(_titolo ?? "");
      }
      set {
        _titolo = value;
      }
    }
  
  private static string UppercaseWords(string value)
    {
        char[] array = value.ToCharArray();
        // Handle the first letter in the string.
        if (array.Length >= 1)
        {
            if (char.IsLower(array[0]))
            {
                array[0] = char.ToUpper(array[0]);
            }
        }
        // Scan through the letters, checking for spaces.
        // ... Uppercase the lowercase letters following spaces.
        for (int i = 1; i < array.Length; i++)
        {
            if (array[i - 1] == ' ')
            {
                if (char.IsLower(array[i]))
                {
                    array[i] = char.ToUpper(array[i]);
                }
            }
        }
        return new string(array);
    }
    
    [Display(Name = "Data Uscita"), DataType(DataType.Date)]
    public DateTime DataUscita { get; set; }
    
    [RegularExpression(@"^[A-Z]+[a-zA-Z""'\s-]*$"), Required, StringLength(30)]
    public string Genere { get; set; }
    
    [DataType(DataType.Currency)]
    public Decimal Prezzo { get; set; }
    
    [RegularExpression(@"^[A-Z]+[a-zA-Z""'\s-]*$"), StringLength(5)]
    public string Valutazione { get; set; }
  }
}

Modificato da BrightSoul il 30 marzo 2018 19.41 -

Simone48

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.