コントローラから渡されたViewModelを取得する単純な編集ページを作成しようとしています。現在、ViewModel
はいくつかの属性で装飾されており、Edit.cshtml
は単純な@Html.EditorForModel()
と送信ボタンで正常に機能します。私がする必要がどのようなModelMetaDataを使用したASP.Net MVC3動的フォーム
public class MySimpleViewModel {
[ScaffoldColumn(false)]
Guid ID { get; set; }
[Required]
string Name { get; set; }
}
は、ユーザーの役割に基づいてModelMetaData
を変更し、特定のプロパティは読み取り専用にするです。コントローラーのModelMetaData
を変更して、[HiddenInput(Display=true)]
のように表示されるようにName
が表示されますか?
私のアプリケーションでは、ロールタイプごとに新しいモデルを作成することはできません。Model
自体は同じです。最善のアプローチは何ですか?私は無駄に以下を試した。私はView
でModelMetaData
をチェックすると
public ViewResult Edit(Guid id) {
var result = View(Service.GetByID(id));
// Alter the result.ViewData.ModelMetaData here???
return result;
}
、それは私が、コントローラで行われた変更はありません。これを行う良い方法は何ですか?私は人々がModelMetaDataProvider
のサブクラスを作成するサンプルを読みましたが、私はそれがまさに私が必要とするものではないと思っています。
ありがとうございます
あなたはこれを行う方法を思いついた。私は同じことをやろうとしていた。たぶん私は賞金を追加する必要があります。 – Jim