Ho il seguente po 'a mio avviso:HTML.TextBoxFor disabilitato valore non passa
@Html.TextBoxFor(model => model.PersonnelId, new { disabled = "disabled" })
Nel mio controller ho questo:
if (ModelState.IsValid)
{
PersonnelFacade.SavePerson(person);
return RedirectToAction("Index");
}
Ora quando posso controllare il person.PersonnelId è vuoto. Quando rimuovo {disabled = "disabled"} funziona, ma poi posso cambiare PersonnelId che non è quello che voglio fare.
Cosa sto sbagliando?
Si potrebbe utilizzare '' HiddenFor' + DisplayFor' invece, o semplicemente aggiungere 'HiddenFor' a quello che già avete. Ad ogni modo, non ha senso affidarsi a questo tipo di protezione a livello di browser. Chiunque può inviare una query POST falsificata con "PersonnelID" modificato in quello che desidera. – GSerg
Nessuno di questi offre la stessa funzionalità di una casella di testo disabilitata? – Liam
Nel mio esempio lo sto usando con PersonnelId. Ma voglio usare lo stesso per CreationDate, in modo che gli utenti possano vedere quando la persona è stata creata o ModificationDate da mostrare quando è stata effettuata l'ultima modifica. DisplayFor non trasmette il valore. L'HiddenFor, posso usare per PersonnelId, dal momento che in realtà non dovresti vederlo. Ma non posso usarlo per CreationDate o ModificationDate, poiché dovrebbero essere visualizzati. –