我在编辑模板中有一个日期时间选择器组合,可以像Html.EditorFor(x => x.ETA)一样使用但现在我想在我没有模型的地方使用相同的模板包含DateTime属性。所以我尝试了使用正确模板的Html.Editor(“DateWithTime”,“Arrival”),但没有为ViewData.ModelMetadata.PropertyName赋值,这是我的模板所依赖的。它设置了文本框的id,这显然很重要。
有没有办法渲染模板并为ViewData.ModelMetadata.PropertyName分配一个id值,这样我就可以重复使用模板中的逻辑而不必复制它?
答案 0 :(得分:1)
可能使用ViewData.TemplateInfo.HtmlFieldPrefix而不是ViewData.ModelMetadata.PropertyName。 我不确定,但我认为HtmlFieldPrefix和PropertyName具有相同的值,只要您不迭代集合。
您可以使用Html.Editor中的htmlFieldName参数修改HtmlFieldPrefix属性。
答案 1 :(得分:0)
您可以在模型中使用UIHint。给它你想要使用的模板的名称
[UIHint("DateWithTime")]
你仍然使用EditorFor。