C# 你能在Razor中[废弃]显示模板吗?

C# 你能在Razor中[废弃]显示模板吗?,c#,asp.net-mvc-3,razor,display-templates,C#,Asp.net Mvc 3,Razor,Display Templates,我在Razor中创建了一个专门用于显示货币的显示模板,现在我想在代码中删除该模板,并用一个接受字符串格式(可以设置为“C”)的标准文本显示模板替换它 但是,出现的情况很多,因此我想使用类似于[Observe]属性的警告消息,以允许在接下来的几周内完成此操作,而不会破坏所有代码 这是可能的还是有等效的方法 干杯 亚当。似乎不是:( 显示模板是通用的,例如: @Html.DisplayFor(model => model.Foo) 要使用[过时],您必须标记DisplayFor方法,该方法将

我在Razor中创建了一个专门用于显示货币的显示模板,现在我想在代码中删除该模板,并用一个接受字符串格式(可以设置为“C”)的标准文本显示模板替换它

但是,出现的情况很多,因此我想使用类似于[Observe]属性的警告消息,以允许在接下来的几周内完成此操作,而不会破坏所有代码

这是可能的还是有等效的方法

干杯

亚当。

似乎不是:(

显示模板是通用的,例如:

@Html.DisplayFor(model => model.Foo)
要使用
[过时]
,您必须标记DisplayFor方法,该方法将适用于所有这些方法。我尝试创建一个“更具体”的版本,以查看它是否会拾取该值(因为您可以将其标记为
[过时]
,如下所示:

public static class MyExtensions
{
    [Obsolete]
    public static MvcHtmlString DisplayFor<TModel, DateTime>(this HtmlHelper<TModel> html, Expression<Func<TModel, DateTime>> expression)
    {
        return html.DisplayFor(expression);
    }
}
公共静态类MyExtensions
{
[过时]
公共静态MvcHtmlString DisplayFor(此HtmlHelper html,表达式)
{
返回html.DisplayFor(表达式);
}
}
遗憾的是,这不起作用-它会产生以下错误:

编译器错误消息:CS0121:调用在 以下方法或属性: 'MVCAPApplication11.Models.MyExtensions.DisplayFor(System.Web.Mvc.HtmlHelper, System.Linq.Expressions.Expression>)' 和 'System.Web.Mvc.Html.DisplayExtensions.DisplayFor(System.Web.Mvc.HtmlHelper, System.Linq.Expressions.Expression>)'


因此,我认为使用
[过时]
无法实现您需要的功能。如果您确实无法在IDE中选择DisplayFor调用,您可以尝试在模板内记录堆栈跟踪(因为您可以在模板内执行任何C)然后在应用程序中运行。这不会是防弹的,但可能会有所帮助。

因为显示模板是在运行时确定的,而不是在编译时确定的,我认为您无法做到这一点。我建议使用
@{//TODO:}
暂时评论。Visual Studio可以在解决方案范围内查找并替换为正则表达式模式搜索。我无法想象为什么要花30分钟才能完成这类非常大的更改。