gpt4 book ai didi

c# - 如何将动态对象传递给 HtmlHelper.Editor()?

转载 作者:太空宇宙 更新时间:2023-11-03 10:44:25 25 4
gpt4 key购买 nike

我正在尝试从我的助手类中调用以下 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 不会检索正确的属性,因为我在运行时创建的属性未在编译时编译。

如何将动态生成的信息传递到 additionalViewData 参数中?

最佳答案

additionalViewData参数也经常在重载中有它的克隆,它不接受 object但有些Dictionary<,>类类型。

嗯,你的ExpandoObject非常擅长转换为该字典类型,请自行查看。

this.Html.Editor("Name", "TemplateName",
(IDictionary<string,object>)YourExpandoObject);

类似的东西应该可以工作。

关于c# - 如何将动态对象传递给 HtmlHelper.Editor()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24003442/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com