3つ以上のフォームのバージョンを表示しています。 1つのバージョンは、すべてのフィールドを編集する編集フォームです。第2のバージョンは同じフォームの読み取り専用バージョンであり、ユーザがデータを入力することができないように、すべてのフィールドがクライアント側でreadonly = "true"のすべてのフィールドを表示するために使用されます。 readonlyフィールドは異なるCSSスタイルを使用する必要があります。これは、アーカイブされたデータを表示するためです。私はすでに提出ボタンを隠していますので、提出することはできませんが、私はフォームが読んでいるように見えます。 3番目のバージョンでは、読み込み専用のフィールドと編集権限の限られた特定のクラスのユーザー用に編集可能なフィールドがあります。MVCですべてのフォームフィールドを読み取り専用にする
私はASP.NET MVC 1.0を使用しています。表示されるフィールドのすべて(または一部)を変更して読み取り専用にするにはどうすればよいですか。私はコントローラーのフィールドのコレクションを反復し、それらをすべて読み取り専用に設定し、正しいCSSクラスを設定したいと思います。私は.aspxファイルのすべてのフィールドにif文を入れる必要はありません(40-50個のフィールドがあります)、私はjavascript/htmlを変更できないようにクライアント側でこれを持たない方がいいです彼らが想定していないものを編集する。
TIA、
スティーブShier
ただ、サイドノート:「私は、彼らがになっていないものを編集するためにはJavaScript/HTMLを変更するからユーザーを防ぐことができます」。ユーザーがPOSTデータを戻すことができないhtmlにロックするだけであると仮定しないでください。 POSTを偽装するのはとても簡単です。 – jeef3
答えをありがとう。私はフォームの内容を部分的に見ています。フォームをフィールドのコレクションとして扱い、外部パラメータ(ユーザーの権利)に基づいて読み取り専用フィールドを選択したいと思います。私は、同じコレクションを再利用して、外部のパラメタに基づいて表示プロパティを設定する必要があります。私はユーザーが編集のための正しい権利を持っていることを確認するために、サーバー側でロジックを持っています。私はこれをすべてのサーバー側で行い、jqueryを使用したくないです。複数のパーシャルを使用する場合は、コードをコピー&ペーストし、DRY違反の保守上の問題があります。 ありがとう、 スティーブ –