最近我寫了一個JavaScript庫來減少我正在做的複製粘貼量。我覺得任何時候我複製粘貼代碼都有機會使其具有通用性,所以我可以重新使用它。如何從助手返回剃鬚刀標記?
製作我的圖書館時,我想在.cshtml視圖中使用它。所以,我使用腳本鏈接和vuala,它是可用的。但是,Visual Studio 2010的IntelliSense並沒有真正的幫助。實際上,它顯示的只是常規的JavaScript選項。
我着手使IntelliSense與我的庫一起工作。經過高低搜索I figured it out(謝謝@SLaks)。關於js IntelliSense問題的鏈接答案是用剃刀@if(false){<script>}
包圍腳本鏈接,以便使IntelliSense能夠在該視圖中與鏈接的腳本一起工作。
所以,我想,
應該剃刀在Visual Studio 2010中的所有腳本的鏈接與此標記包圍?
@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{}");
}
,但它只是寫入字符串輸出到屏幕:(
如何從一個輔助返回剃刀標記OR,是有另一種過程,我可以用來完成這個可重用的工作?
您不需要返回剃刀標記,只需一個字符串 - 腳本標記! – asawyer
@asawyer - 但然後它不會觸發智能感知的解決方法 –
Ooooh我看到你的問題。不,這是對視覺工作室的javascript intellisense的一個惱人的限制,但最好不要。 – asawyer