0
很長一段時間,我認爲將ReadOnly
屬性應用於viewmodel屬性意味着生成的元素將具有readonly
HTML屬性。如何使誤導屬性[ReadOnly]生成只讀字段
然後我很dissapintd地發現,這個ReadOnly
屬性只適用於模型綁定,並在一個只讀的輸入值不綁定到視圖模型發佈,人們仍然可以在UI字段中鍵入,讓他們認爲價值會被儲存起來。
現在,我必須瀏覽我的viewmodel,並且在有此屬性的地方,將其註釋掉,然後手動將HTML readonly
屬性應用於受影響的Razor元素。
我現在想作一個ReallyReadOnly
屬性,以便於對視圖模型的屬性標明,產生一個真正的只讀輸入,其價值必然會回發佈視圖模型
在那裏我可以,如果可以的話,在渲染過程中,我可以檢查並處理這個新屬性嗎?
不是一件容易的事。您需要創建自己的'HtmlHelper'擴展方法來讀取屬性元數據('.IsReadOnly'值),並將readonly =「readonly」'屬性添加到它輸出的html中。 –
這不是誤導。字面上有數百個屬性,其中大部分屬性不適用於模型,並且會被忽略。您有責任瞭解哪些屬性適用,哪些不適用。屬性可以用於很多目的,因此係統無法警告您這一點。 –
@StephenMuecke這就是我的想法。一個新的助手擴展叫做例如'ReadOnlyInput',它讀取模型元數據並檢查新的屬性。由於似乎沒有其他選擇,爲什麼不讓您的評論成爲答案? – ProfK