0

一部のデータをPartialViewに解析する際に問題が発生しました。ディクショナリで解析する場合、プロパティの値とキーはViewDataで設定されます...ディクショナリをViewDataとマージするには...次のようなキーを使用してディクショナリアイテムにアクセスできます。

ViewData["key"] as IList<T>;

それ以外の

ViewData["Values] <- Which is a List that Contains my list.

私はそれをこのように使用するつもりです...匿名/マジックストリング名は必要ありません。

<%: Html.EditorFor(x => x.GroupId, "SimpleSelectList", new { Selected = 10}) %>

私はこのようなことをしたいと思っています。<%:Html.EditorFor(x => x.GroupId、 "SimpleSelectList"、Html.AddViewData(Model.List))%>

この拡張メソッドを使用すると、次のようになります。

public static IDictionary AddViewData<T>(this HtmlHelper helper, T item)
{
    var dictionary = new Dictionary<string, object>();
    dictionary.Add(typeof(T).Name, item);
    return dictionary;
}

そうすれば、SimpleSelectListテンプレートが何を探すべきかを常に知ることができます...そしてまた別のマジックストリングに依存する必要はありません...

または、人々はこれをどのように行うのですか?コードベースに侵入しようとしているだけで、人々はこの種のことをどのように行っているのか...

4

1 に答える 1

1

個人的にはViewData、このコンテキストではまったく使用しません。

辞書をプロパティとして暗示するビューモデルを使用する方が、はるかにクリーンで明確です。次に、このビューモデルをビューと部分ビューに渡すことができます...またはビューモデルの一部だけを部分ビューに渡すことができます(必要なデータによって異なります)。

于 2011-01-16T18:36:29.497 に答える