2010-01-03 17 views
14

aquí es parte de mi códigoañadir una página web Fragmento de un MVC ActionLink

este

<%= Html.ActionLink(Model[x].Title, "Index", "q", new { slug = Model[x].TitleSlug, id = Model[x].PostID }, null)%> 

produce esta url

http://localhost:61158/q/is_there_another_indiana_jones_movie_in_the_works/4 

pero yo quiero producir una URL con un fragmento, como este:

http://localhost:61158/q/is_there_another_indiana_jones_movie_in_the_works/4#1 

¿Hay alguna manera? hacer esto usando la función HTML.ActionLink?

+0

Si alguien sabe una mejor manera de explicar esto no dude en edita esta pregunta – Luke101

Respuesta

21

Hay dos "mega" sobrecargas de ActionLink que tienen un parámetro fragmento:

public static string ActionLink(this HtmlHelper htmlHelper, 
    string linkText, string actionName, string controllerName, 
    string protocol, string hostName, string fragment, object routeValues, 
    object htmlAttributes); 
public static string ActionLink(this HtmlHelper htmlHelper, 
    string linkText, string actionName, string controllerName, 
    string protocol, string hostName, string fragment, 
    RouteValueDictionary routeValues, IDictionary<string, object> htmlAttributes); 

Ver MSDN para obtener más información sobre las sobrecargas.

En su caso sería (y tenga en cuenta el parámetro "fragmento" en particular):

<%= Html.ActionLink(Model[x].Title, "Index", "q", 
    /* protocol */ null, /* hostName */ null, /* fragment */ "1", 
    new { slug = Model[x].TitleSlug, id = Model[x].PostID }, null) %> 

Con las "sobrecargas de mega" se puede salir de la mayoría de los valores de los parámetros como nulo y van a obtener el predeterminado adecuado valores.

Cuestiones relacionadas