gpt4 book ai didi

asp.net-mvc - 创建我自己的 HtmlHelper 扩展时出现问题

转载 作者:行者123 更新时间:2023-12-01 23:09:25 24 4
gpt4 key购买 nike

我有一个 HtmlHelper 的扩展方法:

<%= Html.MyMethod( params )%>

它在 Visual Studio 中工作,但抛出(在运行时):

Compiler Error Message: CS0117: 'System.Web.Mvc.HtmlHelper' does not contain a definition for 'MyMethod'

奇怪的是这确实有效:

<%= HtmlHelperExtensions.MyMethod( Html, params ) %>

为什么我的方法不能作为扩展工作,而是作为普通的静态调用工作?

最佳答案

我在 web.config 中找到了答案——有一节告诉它如何编译嵌入在 HTML 中的 C#:

<system.codedom>
<compilers>
<compiler language="c#;cs;csharp"
extension=".cs"
type="Microsoft.CSharp.CSharpCodeProvider, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
</compiler>
</compilers>
</system.codedom>

这缺少一个额外的标志,告诉它使用 3.5 编译器技巧,让扩展方法和匿名类型在 HTML 中工作:

<system.codedom>
<compilers>
<compiler language="c#;cs;csharp"
extension=".cs"
type="Microsoft.CSharp.CSharpCodeProvider, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<providerOption name="CompilerVersion" value="v3.5" />
</compiler>
</compilers>
</system.codedom>

关于asp.net-mvc - 创建我自己的 HtmlHelper 扩展时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/944015/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com