【c# mvc】關於@Html. DropDownListFor() 或@Html.EnumDropDownListFor() 設置disabled="disabled" post綁定不了值問題。


問題記錄:

問題描述:C# MVC @Html. DropDownListFor() @Html.EnumDropDownListFor() 禁止不可選

Post 提交表單不會綁定值問題(賦不到值)。

問題:想要在添加數據的時候要把指定的字段通過其他的方式動態賦值,讓該元素的不能被選擇。

這邊假設要賦值屬性為TestType

@Html.DropDownListFor(m=>m.TestType,....,new{disabled="disabled"})

@Html.EnumDropDownListFor(m=>m.TestType,....,new{disabled="disabled"})

 

說明:

試錯方法一:本來是想可以直接給htmlAttribute 中添加一個 disabled=”disabled”, 就可以直接不能選,但是出現問題就是 post提交的時候值綁定不到Model上

試錯方法二:@readyOnly=true 但是下拉框還是可以下拉 所以也沒達到自己的效果。

試錯方法三:也試了在前面或后面加一個@Html. HiddenFor(m=>m.TemplateType) 把這個元素加到前面是可以賦值了,但是顯示出來的@Html. DropDownListFor() 或@Html.EnumDropDownListFor()賦值不到 

 

說明:原先試了好幾種方式都不能賦值,然后在Stackoverflow 中看到了一個解決方案

https://stackoverflow.com/questions/1636103/html-dropdownlist-disabled-readonly#

解決方法:通過@readOnly=true和css 來處理了這個問題

步驟一:將類型屬性設置為@readOnly=true

步驟二:給這個值設定為:pointer-events:none

這句的作用是 元素永遠不會成為鼠標事件的target

 

最后:如果你有其他的解決方案可以在評論區分享一下。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM