0

最近、私が行っていたコピペの量を減らすために JavaScript ライブラリを書きました。貼り付けコードをコピーするときはいつでも、再利用できるように汎用にする機会があると感じています。

ライブラリを作成したら、それを .cshtml ビューで使用したいと考えました。そこで、スクリプト リンクと vuala を使用したところ、利用可能でした。ただし、Visual Studio 2010 の IntelliSense はまったく役に立ちませんでした。実際、表示されたのは通常の JavaScript オプションだけでした。

IntelliSense を自分のライブラリで動作させることに着手しました。高低を検索した後、私はそれを理解しました@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{}");
    }

しかし、文字列を画面に書き出すだけです:(

ヘルパーからかみそりのマークアップを返すにはどうすればよいですか? または、これを再利用可能にするために使用できる別のプロセスはありますか?

4

1 に答える 1

0

ヘルパーで生成された Razor マークアップをレンダリングすることはできません。Razor エンジンは、最初に Razor コードを解析し、次にヘルパーを実行します。ヘルパーの結果は、html マークアップを生成するためにのみ使用できます。

于 2012-05-17T12:51:09.020 に答える