2009-07-04 24 views
5

我对我的asp.net mvc应用程序使用了spark view引擎。 在我的aspx页面中,我可以成功地使用Html.Actionlink,但是当我在spark文件中尝试它时,它不会显示在intellisense中,并且当我尝试运行它时,我得到:不能在asp.net mvc火花文件中使用Html.ActionLink

动态视图编译失败。 c:\ Users \ midas \ Documents \ Visual Studio 2008 \ Projects \ ChurchMVC \ ChurchMVC \ Views \ Home \ Index.spark(73,25):错误CS1061:'System.Web.Mvc.HtmlHelper'不包含定义为'ActionLink'和没有扩展方法'ActionLink'接受类型'System.Web.Mvc.HtmlHelper'的第一个参数可以找到(你是否缺少使用指令或程序集引用?)

我确实有系统引用.web.mvc,并在_global.spark中添加。 这些都没有帮助。有任何想法吗?

回答

9

(在Spark discussion group从川罗尔丹的答案复制)

这是佣工居住的地方。

<use namespace="System.Web.Mvc.Html" /> 
1

我在Html.ActionLink的主布局中遇到了同样的问题。原因是自动Html编码。通过设置在web.config中<pages automaticEncoding="false">或使用!{Html.ActionLink(...)},而不是固定的$ {Html.ActionLink(...)}

+0

糟糕!对不起,混合了两篇文章 - 不是“同样的问题”,而是另一篇文章。 – ILog 2010-01-15 20:19:30

4

它可以用正确的Web甚至得到这个错误通过用错误的参数类型声明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") %> 

所以检查标记为好。