5

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 Answers 3

9

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

This is where the helpers live.

<use namespace="System.Web.Mvc.Html" />
Sign up to request clarification or add additional context in comments.

Comments

4

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.

Comments

1

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(...)}

1 Comment

Oops! Sorry, mixed two articles - not "the same problem", a different one.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.