调用 HtmlHelper.Display 以获取不同的模型类型
本文关键字:模型 类型 获取 HtmlHelper Display 调用 | 更新日期: 2023-09-27 18:35:52
我想从与我当前HtmlHelper
不同的类型的HtmlHelper.Display
方法中获得MvcHtmlString
结果。下面的代码编译,但始终返回一个空字符串。
public static MvcHtmlString GetPropertyValue(this HtmlHelper html, string property, object value)
{
var dictionary = new ViewDataDictionary();
dictionary.Add(property, value);
var fooHelper = new HtmlHelper<FooModel>(
new ViewContext(
html.ViewContext,
new WebFormView(html.ViewContext, "dummy"),
dictionary,
new TempDataDictionary(),
TextWriter.Null),
new ViewPage());
return fooHelper.Display(property);
}
所有的辅助对象(ViewContexts
、ControllerContexts
、ViewDataDictionaries
等)对我来说都是一个黑匣子;我确定我错过了一些明显的东西。
我如何让它工作?
好奇:这将在我的应用程序的审核页面上使用。我有属性名称(作为string
)、旧值和数据库中的新值。我还知道用于显示记录所表示的模型的实际实例的类型。我想重用模型类中的所有数据注释来显示 HTML。
我有同样的问题。我想要什么:
我想创建自己的html扩展方法,该方法可以做一些事情,而不是调用DisplayFor。在方法的显示中,我将传递我的不同模型对象。
我的解决方案
public static MvcHtmlString ShowProperty<T>(this HtmlHelper<T> helper, NewModel mynewModel){
return helper.DisplayFor(m => myNewModel, "TemplateName");
}
梅比这对某个人有用