2012-11-07 9 views
6

を渡していません空の。 {disabled = "disabled"}を削除するとうまくいきますが、私がやりたいことではないPersonnelIdを変更できます。HTML.TextBoxFor無効は私が私の見解では、次のビットを持っている価値

私は間違っていますか?

+0

あなたは代わりに 'HiddenFor' +' DisplayFor'を使用するか、またはちょうどあなたがすでに持っているものに 'HiddenFor'を追加することができます。とにかく、ブラウザレベルでのこの種の保護に頼るのは意味がありません。誰でも自分の望むものに変更された 'PersonnelID'で偽造POSTクエリを送ることができます。 – GSerg

+0

これらのどちらも無効なテキストボックスと同じ機能を提供していませんか? – Liam

+0

私のサンプルではPersonnelIdで使用しています。しかし、私はCreationDateに同じものを使用したいので、ユーザーはいつ作成されたのか、最後の変更が行われたときに表示するModificationDateを見ることができます。 DisplayForは値を渡しません。あなたが本当にそれを見るはずがないので、私はPersonnelIdのために使うことができます。しかし、CreationDateやModificationDateには表示する必要があるため、使用することはできません。 –

答えて

5

代わりに読み取り専用にしてください。

@Html.TextBoxFor(model => model.PersonnelId, new { readonly= "readonly" }) 
+1

"readonly"は正常に動作しますが、テキストボックスはまだ有効です。私は "無効"を追加すると、値が再び失われます。 –

9

(モデル=> model.PersonnelIdForDisplay、新しいHtml.TextBoxFor @

  1. ビューに続いて2つの値

    1. PersonnelIdForDisplay
    2. PersonnelId

    をお試しください{disabled = "disabled"})

  2. Html.HiddenForた(p => p.PersonnelId)@
+0

ありがとう..そのことが私に役立つ.. –

関連する問題