如何在标记中使用扩展和实用方法?
好的。这可能是一个非常愚蠢的问题,但无论如何我都会问它......
如何在我的 ASP.Net 标记中使用扩展和实用方法?例如,(假设)我有一个名为“ToExampleString()”的 DateTime 扩展方法(包含在 Common.Extensions 项目的 DateTimeExtensions 类中),并且我想在 ListView 的 ItemTemplate 的标记中使用它
<ItemTemplate>
<span><%# ((DateTime)Eval("DateStarted")).ToExampleString() %></span>
</ItemTemplate>
: 出现以下错误:
“System.DateTime”不包含“ToExampleString”的定义,并且找不到接受“System.DateTime”类型的第一个参数的扩展方法“ToExampleString”(您是否缺少 using 指令或程序集引用?)
页面根本看不到扩展方法。
同样,如何使我的页面标记了解实用程序类:
<span><%# ExampleUtility.ProcessDate(Eval("DateStarted") %></span>
我需要采取哪些步骤才能使这些东西发挥作用?我想我忽略了一些愚蠢而明显的事情?
谢谢
Ok. This is probably a really stupid question, but I'm going to ask it anyway...
How can I use extensions and utility methods in my ASP.Net markup? For example, (say) I have a DateTime extension method called "ToExampleString()" (contained in the DateTimeExtensions class in my Common.Extensions project) and I want to use it in my markup in the ListView's ItemTemplate:
<ItemTemplate>
<span><%# ((DateTime)Eval("DateStarted")).ToExampleString() %></span>
</ItemTemplate>
I'm getting the following error:
'System.DateTime' does not contain a definition for 'ToExampleString' and no extension method 'ToExampleString' accepting a first argument of type 'System.DateTime' could be found (are you missing a using directive or an assembly reference?)
The page simply can't see the extensions method.
Similarly, how do I make my page's markup aware of a utility class:
<span><%# ExampleUtility.ProcessDate(Eval("DateStarted") %></span>
What steps do I need to take to make this stuff work? I assume I'm overlooking something stupidly obvious?
Thanks
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
您需要像其他人所说的那样在页面顶部导入名称空间,
或者在 web.config 中全局
导入名称空间。如果您只需要访问公共模块(或静态类)的方法,只需导入应用程序的根名称空间。
You need to import the namespace either at the top of the page as others have said
Or globally in your web.config
If you simply need access to methods of a public module (or static class), just import your application's root namespace.
我相信您可以对 web.config 中的所有标记执行此操作。
I believe you can do that for all your markups in the web.config.
您必须在页面顶部导入名称空间:
You have to import the namespace, at the top of the page:
命名空间?
您应该在 aspx 标记中添加 using/import 指令
Namespaces?
You should add using/import directive in aspx markup