2014-04-30 14 views
5

sto provando a ricreare qualcosa che ho fatto di nuovo in winforms giorni con attributi di dati HTML in mvc.MVC ottiene un valore di attributo dati di controllo modulo in un post ActionResult

è possibile impostare un attributo su un controllo di modulo che utilizza questo:

txtTest.Attributes.Add("data-myattribute", "my value"); 

e poi leggerlo di nuovo una volta che il modulo era stato scritto utilizzando:

txtTest.Attributes["data-myattribute"] 

aggiungendo gli attributi in MVC è un brezza:

@Html.TextBoxFor(m => m.FirstName, new { data_myattribute = "my value" }) 

non riesco a capire come leggerli nel risultato azione una volta che il modulo è stato pubblicato ?!

state cercando in giro e mentre posso trovare i messaggi loadsa su come impostare i valori degli attributi dei dati e leggerli in javascript, non riesco a trovare nulla che mi dirà come riportarli nel codice ...

qualcuno là fuori conosce la risposta magica ?!

risposta

3

Gli attributi dei dati non sono inclusi nei dati pubblicati nel modulo, quindi non è possibile leggerli nell'azione del controller. Provare a utilizzare un campo nascosto invece:

<input type="hidden" name="FirstNameAttribute" value="my value" /> 

Questo lo legherò di nuovo ad un modello di immobile:

public string FirstNameAttribute { get; set; } 
+0

accidenti! ho avuto la sensazione che fosse così ... sfortunatamente, ho bisogno di impostare il valore dinamicamente su ogni elemento di lista di un controllo selezionato ... tornare al tavolo da disegno su quello allora! grazie per la risposta;) – jakewilliamson

+0

Puoi ancora utilizzare questo approccio: basta utilizzare un attributo dati e aggiornare il valore del campo nascosto con Javascript ogni volta che viene selezionata un'opzione. HTH. –

+0

questo è molto vero ... ma (lanciando un altro blocco in!) Devo codificare questo particolare sito con js fallbacks (un po 'di una cavalla). non voglio davvero entrare nei regni del piping del valore, ad es. '43 | my value 'come ci si sente in modo hacky ma è l'unica soluzione a cui riesco a pensare in questo momento ... – jakewilliamson

Problemi correlati