Cannot use Html.ActionLink in asp.net mvc spark fi

2020-07-15 06:29发布

I'm using the spark view engine with my asp.net mvc application. In my aspx pages, I can succesfully use Html.Actionlink, but when I attempt it in spark files, it doesnt show up in intellisense, and when i try to run it anyway, i get:

Dynamic view compilation failed. c:\Users\midas\Documents\Visual Studio 2008\Projects\ChurchMVC\ChurchMVC\Views\Home\Index.spark(73,25): error CS1061: 'System.Web.Mvc.HtmlHelper' does not contain a definition for 'ActionLink' and no extension method 'ActionLink' accepting a first argument of type 'System.Web.Mvc.HtmlHelper' could be found (are you missing a using directive or an assembly reference?)

I do have system.web.mvc referenced, and I have added in _global.spark. None of that helps. Any ideas?

3条回答
地球回转人心会变
2楼-- · 2020-07-15 07:01

(Copied from Rei Roldán's answer in Spark discussion group)

This is where the helpers live.

<use namespace="System.Web.Mvc.Html" />
查看更多
时光不老,我们不散
3楼-- · 2020-07-15 07:09

It is possible to get this error even with correct Web.config by declaring ActionLink with wrong argument types.

Example:

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

Error:

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

While this works:

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

So check your markup as well.

查看更多
看我几分像从前
4楼-- · 2020-07-15 07:14

I had the same problem with Html.ActionLink in master layout. The reason was automatic Html encoding. Fixed by setting <pages automaticEncoding="false"> in web.config or by using !{Html.ActionLink(...)} instead of ${Html.ActionLink(...)}

查看更多
登录 后发表回答