有没有办法动态包装/拦截HtmlHelper扩展方法.想想装饰模式

Dax*_*x70 5 asp.net asp.net-mvc html-helper razor asp.net-mvc-3

我想包装/拦截System.Web.Mvc.Html中提供的HtmlHelper扩展方法(TextBox,Hidden等),以便在2个单独的用例中重用相同的部分视图.部分:

@model BlogEntry

@Html.TextBoxFor(t => t.Title)
@Html.TextAreaFor(t => t.Body)
@* Etc *@
Run Code Online (Sandbox Code Playgroud)

Partial的调用者将知道上下文(即是否覆盖或离开MS imp).

覆盖的原因是多种多样的.例如:在JQuery模板中使用,其中value属性的输出在上面的示例中为"$ {Title}"或者添加Html5元数据.

mar*_*ind 0

无法拦截对内置帮助器扩展方法的调用。但是,您可以编写自己的扩展方法,根据上下文执行正确的操作。