2010-12-09 4 views
2

Lorsque j'utilise la construction dans les aides HTML, je peux simplement écrire ce qui suit.ASP.NET MVC - Comment créer un HtmlHelper qui n'a pas besoin d'être enveloppé dans MvcHtmlString?

@Html.Actionlink(bla) 

Mais quand j'écris mes propres Helpers Html, je dois bloquer l'encodage en l'enveloppant dans un MvcHtmlString

@MvcHtmlString.Create(Html.CustomPager(bla)) 

Est-ce que je peux faire dans la méthode d'extension pour que je n » Je dois m'inquiéter de ne pas l'encoder?

+0

désolé avait laissé une réponse, mais s'est rendu compte que cela peut avoir été la syntaxe de rasoir spécifique, donc supprimé –

+0

yup, c'est rasoir. dans WebForms vous pouvez utiliser '<% =' au lieu de '<%:' ce qui est un peu plus agréable. –

+0

C'est une douleur assez grande que je considère revenir à WebForms View Engine au lieu de Razor. –

Répondre

5

oui, vous pouvez faire l'aide revenir un MvcHtmlString - à savoir:

public static MvcHtmlString Css(this HtmlHelper html, string path) 
{ 
    return MvcHtmlString.Create(/* some code*/); 
} 

plutôt que:

public static string Css(this HtmlHelper html, string path) 
{ 
    return (/* some code*/); 
} 

je ne sais pas les exigences de rasoir, de sorte que c'est un coup de poignard aveugle la réponse sombre peut-être ..

+0

Nice. Je ne savais pas que c'est comme ça que tout s'est déroulé, même si c'est parfaitement logique. –

+0

oui, un organigramme de la façon dont tous ces bits liés serait SOO utile .. :) –

+0

quels bits spécifiquement? – marcind

Questions connexes