我有一个HtmlHelper的扩展方法:
<%= Html.MyMethod( params )%>
它适用于visual studio,但会抛出(在运行时):
编译器错误消息:CS0117:'System.Web.Mvc.HtmlHelper'不包含'MyMethod'的定义
奇怪的是这确实有效:
<%= HtmlHelperExtensions.MyMethod( Html, params ) %>
为什么我的方法不能作为扩展,但作为普通的静态调用呢?
我在web.config中找到了答案 - 有一节告诉它如何编译嵌入在HTML中的C#:
这缺少一个额外的标志,告诉它使用3.5编译器技巧,让扩展方法和匿名类型在HTML中工作: