HTML-Code.TextBoxFor Behinderte nicht vorbei Wert
Habe ich im folgenden etwas aus meiner Sicht :
@Html.TextBoxFor(model => model.PersonnelId, new { disabled = "disabled" })
In meinem controller habe ich dieses :
if (ModelState.IsValid)
{
PersonnelFacade.SavePerson(person);
return RedirectToAction("Index");
}
Nun, wenn ich überprüfen die person.PersonnelId es leer ist.
Wenn ich entfernen Sie die {disabled = "disabled" } funktioniert es, aber dann ich ändern kann, die PersonnelId was nicht, was ich tun will.
Was mache ich falsch?
- Könnten Sie
HiddenFor
+DisplayFor
statt, oder fügen Sie einfachHiddenFor
zu dem, was Sie bereits haben. Trotzdem, es macht keinen Sinn zu verlassen, die auf dieser Art von Schutz auf browser-Ebene. Jeder kann senden Sie eine gefälschte POST-Abfrage mitPersonnelID
geändert, was Sie wollen. - Weder diese bieten die gleiche Funktionalität wie ein deaktiviertes Textfeld?
- In meinem Beispiel verwende ich es mit PersonnelId. Aber ich möchte das gleiche für CreationDate, so dass die Nutzer sehen können, wenn die person, die erstellt wurde, oder ModificationDate, um anzuzeigen, Wann die Letzte änderung vorgenommen wurde. Die DisplayFor nicht, übergeben Sie den Wert. Die HiddenFor, die ich verwenden kann für die PersonnelId, da Sie nicht wirklich soll, um es zu sehen. Aber ich kann es nicht verwenden für CreationDate oder ModificationDate, da diese angezeigt werden sollen.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Versuchen Sie, es auf readonly statt.
Versuchen die 2 Werte
Dann Ihrer Ansicht