2009-02-24 7 views
7

Dopo aver effettuato l'aggiornamento all'ultimo candidato di rilascio MVC di ASP.NET, ho notato che, quando si utilizzano gli helper HTML, qualsiasi nome con un punto "." in esso sarà sostituito da un carattere di sottolineatura "_" quando viene emesso l'ID dell'elemento.Impedire l'MVC di ASP.NET dalla sostituzione del periodo con il carattere di sottolineatura negli ID helper HTML

Credo che questo sia to aid in using JQuery e l'utilizzo del periodo è di ausilio nell'uso di ModelBinders. Questo ha rotto tutto il nostro javascript, che usa il prototipo, dal momento che gli ID sono cambiati.

C'è un modo per disattivare questa funzione facilmente?

risposta

14

Dalle note di rilascio di ASP.NET MVC RC1 (pagina 15).

In questa versione, per default il carattere punto è sostituito automaticamente con una sottolineatura nel valore dell'attributo ID. Così l'esempio TextBox rende la seguente marcatura:

<input type="text" name="Person.FirstName" id="Person_FirstName" />

per cambiare il carattere di sostituzione di default, è possibile impostare il HtmlHelper.IDDotReplacementChar struttura al carattere che si desidera utilizzare invece.

FYI. Guardando il codice sorgente al http://www.codeplex.com/aspnet, sembra che il vero nome della proprietà in RC1 sia IdAttributeDotReplacement. Lo snippet di codice pertinente è riportato di seguito. Per mantenere il punto, devi semplicemente impostare questa proprietà sul carattere punto - cioè, sostituire il carattere punto con se stesso.

public static string IdAttributeDotReplacement { 
    get { 
     if (String.IsNullOrEmpty(_idAttributeDotReplacement)) { 
      _idAttributeDotReplacement = "_"; 
     } 
     return _idAttributeDotReplacement; 
    } 
    set { 
     _idAttributeDotReplacement = value; 
    } 
} 
+2

Sembra un modo strano di farlo - supponiamo che sia di aiuto l'impostazione predefinita di JQuery. Ho aggiunto HtmlHelper.IdAttributeDotReplacement = "."; a Global Application_Start e siamo tornati online in 8 minuti;) Grazie –

Problemi correlati