最近我写了一个javascript库来减少我正在做的复制粘贴量。我觉得任何时候我复制粘贴代码都有机会使它成为通用的,所以我可以重复使用它。
创建我的库后,我想在.cshtml视图中使用它。所以,我使用了脚本链接和vuala,它可用。但是,Visual Studio 2010的IntelliSense根本没有帮助。事实上,它显示的只是常规的javascript选项。
我打算让IntelliSense与我的库一起工作。搜索高和低后I figured it out(谢谢@SLaks)。 js IntelliSense问题的链接答案是用剃须刀@if(false){<script>}
包围脚本链接,以使IntelliSense能够在该视图中使用链接脚本。
所以,我想,
Visual Studio 2010 for razor中的所有脚本链接是否应该使用此标记包围?
@if (false)
{
<script src="/Scripts/r.js" type="text/javascript"></script>
}else{
<script src="@Url.Content("~/Scripts/r.js")" type="text/javascript"></script>
}
这对我来说很好看,所以我开始将它合并,只是为了发现我再次复制粘贴。我想我可以使用一个“简单”的助手,也许@Html.Script(source)
。不幸的是,我不确定如何从帮助者那里返回剃刀标记。
我试过了:
public static void Script(
this HtmlHelper html, string source)
{
html.ViewContext.Writer.Write("@if(false){}else{}");
}
但它只是将字符串写到屏幕上:(
如何从助手返回剃刀标记?或者,是否有另一个流程可以用来完成重复使用?
答案 0 :(得分:0)
您无法渲染帮助程序中生成的Razor标记。剃刀引擎首先解析剃刀代码,然后执行帮助程序。 Helper的结果只能用于生成html标记。