我在int类型上有一个简单的扩展方法,所以我可以执行以下操作:
string timeLength = 61.ToTime() // timeLength will be "1:01"
Run Code Online (Sandbox Code Playgroud)
这在代码中很有用,但我想在Repeater模板中使用这种扩展方法.数据绑定时,我想执行以下操作:
<%# Eval("LengthInSeconds").ToTime() %>
Run Code Online (Sandbox Code Playgroud)
这没用,所以我试过:
<%# ((int) Eval("LengthInSeconds")).ToTime() %>
Run Code Online (Sandbox Code Playgroud)
它仍然无法正常工作.JIT编译器没有看到我的扩展方法,我在页面中有正确的import语句.
我解决这个问题的唯一想法是用Literal控件替换Eval并在代码隐藏中调用扩展方法,但不管怎样,我仍然想知道为什么这不起作用.
谢谢
asp.net data-binding extension-methods late-bound-evaluation