我为日期创建了一个自定义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的属性,但是可以理解更方便的解决方案。