在自定义助手中强制执行编辑模式格式

时间:2018-03-19 12:37:58

标签: c# asp.net-mvc html-helper

我为日期创建了一个自定义html助手,其中包括我强制执行格式。有趣的是,当我部署到服务器时,我发现如果没有以下元数据属性,则不会强制执行该格式:

DisplayFormat(ApplyFormatInEditMode = true)

我试图在帮助程序中复制相同的功能,如下所示:

(html.ViewData.ModelMetadata as CachedDataAnnotationsModelMetadata).EditFormatString = format;
(html.ViewData.ModelMetadata as CachedDataAnnotationsModelMetadata).DisplayFormatString = format;
var attributes = CreateDateAttributes(format, htmlAttributes);
return html.TextBoxFor(expression, format, attributes);

我正在使用CachedDataAnnotionsModelMetadata,因为它似乎是触发HasNonDefaultEditFormat标志的唯一方法,实际上它没有任何帮助。

这是一个紧迫的问题,所以我只是暂时添加了具有单个属性ApplyFormatInEditMode的属性,但是可以理解更方便的解决方案。

0 个答案:

没有答案