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 einfach HiddenFor 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 mit PersonnelID 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.
Schreibe einen Kommentar