Asp.net-Mvc

ReadOnly 屬性在 ASP.NET MVC 模型中不起作用

  • November 24, 2015

我在模型類中將一個屬性標記為只讀,如下所示:

public class RegisterModel
{
   [Display(Name = "User name")]
   [ReadOnly(true)]
   public string UserName { get; set; }
   ...
}

在我看來:

@Html.EditorFor(m => m.UserName)

但是當我執行應用程序時,文本框不是只讀的。

我知道我可以在視圖中使用 html 屬性將其設為只讀,但如果這可以在模型類本身中完成,我更願意。

可以實現嗎?

[更新] 我認為沒有new { @readonly = "readonly" }. Readonlyproperty 指定此屬性綁定到的屬性是只讀的還是讀/寫的。詳情在這裡。

但是您可以嘗試自定義助手或嘗試在模型上使用Editable而不是Readonly在您的視圖中使用元數據屬性。

[Editable(false)]

我想您已經研究過 ReadOnly(true) 是否與 Html.EditorForModel 一起工作?

也是一篇很好的文章odetocode.com

ReadOnly屬性不會阻止 HMTL 幫助器將該欄位顯示為啟用的輸入。這是唯一 MVC 數據 Binder 將尊重的資訊。

這意味著RegisterModel將在使用者送出表單後發回的實例將始終null在其屬性上具有價值UserName,而不管使用者在表單的相應欄位中的輸入如何。

引用自:https://stackoverflow.com/questions/14995577