在我的控制器MVC中,我有一個Action來顯示我的模型(具有3個字段[代碼],[Libelle]和[IsActif])的通用模型。在模型上添加動態只讀屬性
[AcceptVerbs(HttpVerbs.Get | HttpVerbs.Post)]
[ActionName("AfficheDetailMotifRejet")]
[AuthorizeRoleFilter(Roles = TypeRoles.Roles.ADMINISTRATEUR_NATIONAL)]
public ActionResult AfficheDetailMotifRejet([DefaultValue(Int64.MinValue)] Int64 id)
{
DetailGeneric dg = new DetailGeneric { Id = id };
if (id > 0)
{
MotifRejet s = _srvMotifRejet.Charger(id);
Mapper.CreateMap<MotifRejet, DetailGeneric>();
dg = Mapper.Map<MotifRejet, DetailGeneric>(s);
}
return View("GererMotifRejet", dg);
}
如果我發送Int64.MinValue作爲Id,那麼我的模型顯示爲空,準備插入。 但是,當我顯示編輯與一個存在的ID,我需要在ReadOnly模式下的字段[代碼]。
什麼是最佳解決方案?
我想在dg.Code中添加[ReadOnly(true)]屬性,但是如何做到這一點?
不過,我可以用javascript做成這個,但是如果用戶沒有激活javascript,就有風險。
感謝您的幫助。
屬性是用代碼編譯並存儲在dll中的常量值 - 這意味着您在技術上不能在運行時「更改」屬性的值,除非您在運行時生成並編譯代碼。你可能會想要另一種方式來實現同樣的事情,而不用關注屬性。 –