私たちは、Editor-Templateを動的プロパティで動作させることを試みてきました-無駄に。多分あなたの一人が私たちを助けることができます。
これが大まかに私たちのクラスです:
public class Criterion
{
...
public string Text { get; set; }
public dynamic Value { get; set; }
public Type Type { get; set; }
...
}
私たちのかみそりのビューは、それぞれがその中に基準のリストを含むセクションのリストを含むモデルを取得します。(これらの情報は実行時に取得されます。)これらの基準はすべて編集モードで表示する必要があります-実際のタイプに関して:(抜粋)
@for (int i = 0; i < model.Sections.Count(); i++)
{
for (int j = 0; j < model.Sections[i].Criteria.Count(); j++)
{
var criterion = model.Sections[i].Criteria[j];
var type = criterion.Type.Name;
var name = "Sections[" + i + "].Criteria[" + j + "].Value";
var criterionDisplayName = criterion.Text;
<label for="Sections_@(i)__Criteria_@(j)__Value">@criterionDisplayName</label>
@Html.Editor(name, type)
}
}
これは、たとえばチェックボックスを正しく表示しますが、チェックボックスのステータスを正しく設定するために値を使用しません(criteria.Valueがtrueかどうかをチェックします)。同じことが、のような他のタイプにも当てはまりints
ます。(POSTリクエストの後でフォームに正しく入力されますが、これはMVCが一時モデルを使用してユーザー入力を再作成するためです。)
私たちが試し、調査した限り、次のタイプのプロパティでEditorテンプレートを使用することも可能dynamic
ですか?はいの場合-どうすればそれを機能させることができますか?(可能なタイプで識別したくありません。実際のタイプに基づいて適切なエディターテンプレートを使用するMVCフレームワークが必要です。)