我试图从我的助手类中调用以下Editor
方法:
public EditorExtensions {
public static MvcHtmlString Editor(this HtmlHelper html, string expression, string templateName, object additionalViewData);
}
呼叫的一个例子是:
this.Html.Editor("Name", "TemplateName", new { PropertyId = "Property1" });
这很好用,直到我尝试将动态生成的对象作为additionalViewData
参数传递,就像ExpandoObject
一样。它不起作用的原因是.NET框架将尝试对传递的对象执行GetProperties()
并且ExpandoObject
不会检索正确的属性作为属性I&# 39; m在运行时创建时没有在编译时编译。
如何将动态生成的信息传递到additionalViewData
参数?
答案 0 :(得分:2)
additionalViewData
参数在重载中也经常有一个克隆,它不接受object
但只接受一些Dictionary<,>
类类型。
嗯,你的ExpandoObject
非常善于投射到该词典类型,请亲自看看。
this.Html.Editor("Name", "TemplateName",
(IDictionary<string,object>)YourExpandoObject);
这样的事情应该有用。