无法在asp.net mvc spark文件中使用Html.ActionLink

5
我正在使用Spark视图引擎与我的asp.net mvc应用程序。在我的aspx页面中,我可以成功地使用Html.Actionlink,但是当我尝试在spark文件中使用它时,它不会出现在智能感知中,当我尝试运行它时,我会得到以下错误信息: 动态视图编译失败。 c:\ Users \ midas \ Documents \ Visual Studio 2008 \ Projects \ ChurchMVC \ ChurchMVC \ Views \ Home \ Index.spark(73,25):error CS1061:'System.Web.Mvc.HtmlHelper'不包含“ActionLink”的定义,并且没有扩展方法可接受第一个参数类型为'System.Web.Mvc.HtmlHelper'(是否缺少using指令或程序集引用?) 我确实已经引用了system.web.mvc,并且在_global.spark中添加了<%@ Import Namespace="System.Web.Mvc" %>。但是这些都没有帮助。有任何想法吗?
3个回答

9
这里是助手们的居所。
<use namespace="System.Web.Mvc.Html" />

4

即使使用正确的Web.config,在声明ActionLink时使用错误的参数类型也可能导致出现此错误。

例如:

<%= Html.ActionLink(1, "bar") %>

错误:

Compiler Error Message: CS1928: 'System.Web.Mvc.HtmlHelper<Approval.WebSite.ViewsModels.HomeIndexPage>' does not contain a definition for 'ActionLink' and the best extension method overload 'System.Web.Mvc.Html.LinkExtensions.ActionLink(System.Web.Mvc.HtmlHelper, string, string)' has some invalid arguments

虽然这样可以实现:

<%= Html.ActionLink("foo", "bar") %>

所以请检查您的标记语言。


1

我在主布局中使用Html.ActionLink时遇到了同样的问题。原因是自动进行的Html编码。通过在web.config中设置<pages automaticEncoding="false">或者使用!{Html.ActionLink(...)}代替${Html.ActionLink(...)}来解决。


糟糕!抱歉,我混淆了两篇文章 - 不是“同一个问题”,而是另一个问题。 - ILog

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接