Search code examples
asp.net-mvct4mvchtml.actionlink

Create a T4MVC ActionLink with url fragment


Is there a way to create a strongly typed T4MVC ActionLink with a hash/pound/fragment in it?

For example, here is the link I'd like to create:

<a href="/Home/Index#food">Feed me</a>

But there's no extension to the T4MVC object that can do this.

<%= Html.ActionLink("Feed me", T4MVC.Home.Index()) %>

So, what I end up having to do is create an action, and then embed it that way:

<a href="<%= Url.Action(T4MVC.Home.Index()) %>"#food>Feed me</a>

This isn't very desirable. Anyone have any ideas/suggestions?

Thanks in advance


Solution

  • This kind of approach is the only one i can think of that feels (to me) slightly better than writing anchor manually:

    ${Html.ActionLink("Feed me", T4MVC.Home.Index(), Fragment: "food")}
    

    Apart from spark viewengine - it costs 1 good old htmlhelper extension method & named parameters.


    I assume that this isn't available in the default viewengine? I've decided to write a quick extension for the ActionLink, but it's not elegant, and I would have liked any solution to be available to others in future versions of T4MVC.

    Spark replaces <%=%> with ${}. Mentioned just because I prefer it (You should try it if You emphasize code elegance). C# 4.0 is required in order to use named parameters.

    That's because I would like to avoid losing information to which parameter "food" argument maps.


    And yeah, i strongly agree with Mattias Jakobsson.