asp.net mvc - Razor - Render without Render() and without Encoding -
can please explain how following following achieved. telerik grid component generate non-encoded html following code:
@(html.telerik().grid(model) .name("grid") .datakeys(keys => keys.add(c => c.productid)) .databinding(databinding => databinding.server() .select("columnsettings", "grid") .update("columnsettings_save", "grid") .delete("columnsettings_delete", "grid")) .columns(columns =>columns.loadsettings((ienumerable<gridcolumnsettings>)viewdata["columns"])) .sortable() )
presumably happens because method call wrapped in "@(....)". whenever try own components result encoded html. know can use render() output mvchtmlstring , html not encoded telerik grid seems achieve without .render().
can explain secret me?
the @( ) syntax allows command span multiple lines (otherwise line break interpreted - incorrectly - end of statement) , doesn't affect encoding.
you right - outputting mvchtmlstring avoids automatic razor encoding.
more specifically, of methods part of builder object, fluent interface returns every call. builder implements ihtmlstring, that's why .sortable() call or other call in chain render html unencoded.
Comments
Post a Comment