ASP.NET MVC3アプリで作業していますが、ビューからコントローラーに呼び出しを行い、その情報を辞書として保存したいと思います。
コントローラーコード:
public Dictionary<string,int> foo()
{
Dictionary<string,int> bar = new Dictionary<string,int>();
bar.Add("test",100);
return bar;
}
コードを表示:
@{ Dictionary<string,int> foobar = Html.Action("foo"); }
...
<div>@foobar["test"]</div>
を使用すればビューを機能させることができますがvar foobar = Html.Action("foo");
、foobarはタイプSystem.Web.Mvc.MvcHtmlString
であるとだけ表示されるため、あまり使用できません。
不足している組み込み機能はありますか、それともJSON結果のようなものを使用する必要がありますか?
編集:追加情報
また、VS2010デバッガーでは、foobarがとして正しく認識される{System.Collections.Generic.Dictionary'2[System.String,System.Int32]}
ため、foobarが正しく解決されないという問題があることにも注意してください。スローされるエラーは次のとおりです。
Compiler Error Message: CS0021: Cannot apply indexing with []
to an expression of type 'System.Web.Mvc.MvcHtmlString'
編集2
結果を辞書にキャストする際に発生したエラーは次のとおりです。
Url.Action("foo").ToDictionary<string,int>();
CS1501: No overload for method 'ToDictionary' takes 0 arguments
明らかな理由で返されましたが、VS2010デバッガーは結果がディクショナリであることを認識します。
しかし、パラメーター(Url.Action("foo").ToDictionary<string,int>(x=>x);
)を追加すると、それが辞書であると認識されなくなりますが、それらが適切なパラメーターであるかどうかはわかりません(ここで見つけたものに基づいています) 。