私のコントローラのMVCには、自分のモデル([コード]、[Libelle]、[IsActif]の3つのフィールドを持つジェネリックモデル)を表示するアクションがあります。モデルに動的ReadOnly属性を追加する
[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);
}
私はIDとしてInt64.MinValueを送信する場合は、その後、私のモデルを挿入する準備ができて、空を示しています。 しかし、私が既存のIdで編集することを示すとき、私はReadOnlyモードで[コード]フィールドを作成する必要があります。
最適なソリューションは何ですか?
dg.Codeの[ReadOnly(true)]属性を追加すると思いますが、これを作成する方法はありますか?
しかし、私はこれをJavaScriptで作成することができますが、ユーザーがJavaScriptを有効にしていないと、リスクがあります。
ご協力いただきありがとうございます。
属性はコードとともにコンパイルされ、dll自体に格納される定数です。つまり、実行時にコードを生成してコンパイルしない限り、実行時に属性の値を技術的に '変更'できません。おそらく、属性に焦点を当てずに同じことを達成するための別の方法を探してみたいでしょう。 –