我想在自己的MVC視圖中將自定義渲染器定義爲lambda,我可以在局部使用它來多次渲染相同的東西。我打算將它存儲在視圖數據中。到目前爲止,我已經創建了此擴展方法來存儲渲染器:無法在MVC中定義自定義渲染器lambda
public static class HtmlHelperExtensions
{
public static void DefineRenderer<TModel>(this HtmlHelper<TModel> html, string rendererName, Action renderer)
{
html.ViewData["_Renderer" + rendererName] = renderer;
}
}
我試圖在我的視圖中定義渲染器,但它不工作;我假設我的語法關閉。有人能告訴我我在這裏做錯了嗎?我只是希望它渲染測試段調用時:
@Html.DefineRenderer("AnalysisTableHeader",() => {
<p>test paragraph</p>
@});
究竟要達到什麼目的? @helper對你來說不夠嗎? – mariozski 2013-03-12 13:47:33
你期望助手做什麼?哦,使用'ViewBag'而不是'ViewData',這是一個更好的做法。 ;) – ecampver 2013-03-12 13:58:46
@ e.campver其實我認爲恰恰相反。我儘可能避開動態。我喜歡我的語言強烈類型。 – Jez 2013-03-12 14:45:07