我正在尝试创建一个自定义的html帮助器,其中实际上有几个html元素,包括输入类型的文件和输入类型的按钮。
我的工作正常,但我还想包含一些隐藏的输入,并使用我模型的一些属性中的值填充值。是否可以在自定义@ Html.MyCustomHelperFor(m => m.somefield)中从我的模型中获取一些属性的值
我的方法签名如下所示:
public static MvcHtmlString MyCustomHelperFor<TModel, TProperty>(this HtmlHelper<TModel> htmlHelper, Expression<Func<TModel, TProperty>> expression)
另外,有点偏离主题,我会更适合在局部视图中写这个吗?
请告知。
答案 0 :(得分:1)
您可以从ViewData
MyCustomHelperFor<TModel, TProperty>(this HtmlHelper<TModel> htmlHelper, Expression<Func<TModel, TProperty>> expression)
{
MyModelClass model = htmlHelper.ViewData as MyModelClass;
string otherProperty = model.OtherProperty;
然而,这不是很灵活,因为它只适用于一种模型类型(除非你进行条件检查(if (htmlHelper.ViewData is MyModelClass1) {..} else if (htmlHelper.ViewData is MyModelClass2) {..}
等。
我建议您最好创建部分视图或自定义显示和编辑器模板。