2010-11-20 9 views

Antwort

3

Ja, vorhandene Helfer funktionieren mit Razor einwandfrei. Zum Beispiel:

@Html.ActionLink("foo bar", "foo") 

Was Razor ändert ist, dass jetzt die Möglichkeit, Inline-Helfer wie folgt zu definieren:

@helper FooBar(string foo) 
{ 
    <div>Hello @foo</div> 
} 

Und wie diese:

@FooBar("World") 

Soweit classic HTML-Helfer sind betroffen, Razor ändert nichts, es ist nur eine View-Engine, also schreiben Sie weiterhin Ihre Helfer, wie Sie es immer getan haben:

public static class HtmlExtensions 
{ 
    public static MvcHtmlString FooBar(this HtmlHelper htmlHelper, string value) 
    { 
     var builder = new TagBuilder("div"); 
     div.SetInnerText(value); 
     return MvcHtmlString.Create(div.ToString()); 
    } 
} 

Und in Razor verwenden:

@Html.FooBar("some value") 
0

Razor führt HTML-Codierung standardmäßig.

Wenn also einige Ihrer MVC2 HtmlHelpers Markup ausgeben, funktionieren sie möglicherweise nicht, wenn sie String anstelle von MvcHtmlString zurückgeben.