[英]How to accept html content as a parameter to a helper function in MVC+Razor?
我注意到一些Razor函数将html内容作为参数,例如:
@section Scripts {
<script type="text/javascript">
$(function() {
alert("aha");
});
</script>
}
这不会立即渲染html内容,而是Razor的Section()系统存储它以供以后渲染。
我想编写自己的帮助函数,以相同的方式接受html内容,例如:
@Html.MyCoolFunction {
<div><stuff><blah>...
dafsdfsa
</blah></stuff></div>
}
我不知道什么语法会起作用,但可能MyCoolFunction会接受一个MvcHtmlString作为参数,我可以用它做我想做的事情。
这可能吗?
我设法从intellisense和其他代码示例中解决了这个问题。
像这样的扩展函数:
public static MvcHtmlString DoTwice(this HtmlHelper htmlHelper, Func<MvcHtmlString, HelperResult> htmlContent)
{
var x = htmlContent(new MvcHtmlString("")).ToHtmlString() +
htmlContent(new MvcHtmlString("")).ToHtmlString();
return new MvcHtmlString(x);
}
可以调用并传递阻止html内容,如下所示:
@Html.DoTwice(
@<div>What happens??</div>
)
输出:
What happens??
What happens??
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.