非常に長い間、私はReadOnly
属性をviewmodelプロパティに適用すると、生成された要素がreadonly
HTML属性を持つことを意味しました。誤解を招く属性[ReadOnly]が読み取り専用フィールドを生成する方法
次に、このReadOnly
属性がモデルバインディングにのみ適用され、読み取り専用入力の値が投稿されたviewmodelにバインドされておらず、ユーザーがUIフィールドに入力できることがわかりました。その値が格納されると考えるようにします。
ここでは、この属性がある場合はいつでも、ビューモデルを参照してコメントアウトし、HTML readonly
属性を影響を受けるRazor要素に手動で適用する必要があります。
私ができるにバインドされているように、私は今、ReallyReadOnly
属性をしたいと思い
レンダリングプロセスで、この新しい属性をチェックしてその属性を操作できますか?
簡単な作業ではありません。プロパティメタデータ( '.IsReadOnly'値)を読み込み、出力するhtmlに' readonly = "readonly"属性を追加する独自の 'HtmlHelper'拡張メソッドを作成する必要があります。 –
それは誤解を招くことはありません。文字通り何百もの属性があり、そのほとんどはモデルには適用されず、単純に無視されます。あなたは、どの属性が適用され、どの属性が適用されないかを理解する責任があります。属性は多くの目的に使用できるため、システムがこれを警告する方法はありません。 –
@StephenMueckeそれは私が心に持っているものです。たとえば、モデルのメタデータを読み込み、その新しい属性をチェックする 'ReadOnlyInput'他のオプションはほとんどないようですので、あなたのコメントを答えにしてみませんか? – ProfK