如何在标记中使用扩展和实用方法?

发布于 2024-08-08 03:44:06 字数 736 浏览 7 评论 0原文

好的。这可能是一个非常愚蠢的问题,但无论如何我都会问它......

如何在我的 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

绿萝 2024-08-15 03:44:06

您需要像其他人所说的那样在页面顶部导入名称空间,

<%@ Import Namespace="Common.Extensions"%>

或者在 web.config 中全局

<system.web>
  <pages>
    <namespaces>
      <add namespace="Common.Extensions"/>
    </namespaces>
  </pages>
</system.web>

导入名称空间。如果您只需要访问公共模块(或静态类)的方法,只需导入应用程序的根名称空间。

You need to import the namespace either at the top of the page as others have said

<%@ Import Namespace="Common.Extensions"%>

Or globally in your web.config

<system.web>
  <pages>
    <namespaces>
      <add namespace="Common.Extensions"/>
    </namespaces>
  </pages>
</system.web>

If you simply need access to methods of a public module (or static class), just import your application's root namespace.

皇甫轩 2024-08-15 03:44:06
<%@ Import Namespace="Common.Extensions" %>

我相信您可以对 web.config 中的所有标记执行此操作。

<%@ Import Namespace="Common.Extensions" %>

I believe you can do that for all your markups in the web.config.

泪痕残 2024-08-15 03:44:06

您必须在页面顶部导入名称空间:

<%@ Import Namespace="Common.Extensions"%>

You have to import the namespace, at the top of the page:

<%@ Import Namespace="Common.Extensions"%>
樱&纷飞 2024-08-15 03:44:06

命名空间?

您应该在 aspx 标记中添加 using/import 指令

Namespaces?

You should add using/import directive in aspx markup

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文