0

スワップアウトされた JavaScript を使用したビューがあります

@section JavaScript {
    <script type="text/javascript" src="@Url.Content("/Scripts/Index.js")" />
}

次のように、ビュー内の JavaScript セクションで Razor コマンドを直接呼び出すことができることを知っています。

<script type="text/javascript">
    var someVariable = '@(Model.Name)'
</script>

ここで、スワップ アウトした .js ファイルから文字列値を返すカスタム HtmlHelperExtension メソッドを呼び出す必要がありますが、次のように書き留めます。

var someVariable = '@(Html.someHtmlFunction())'

「@(Html.someHtmlFunction())」の部分は文字列自体として解釈され、someVariable は「someReturnValue」ではなく「@(Html.someHtmlFunction())」のように見えます。

スワップアウトされた JavaScript ファイル内から Razor コマンドを呼び出すことは可能ですか?それとも、ビューに JavaScript を含める必要がありますか?

4

1 に答える 1

1

いいえ、.js ファイルでこれを行うことはできません。これらのシナリオで私が通常行うことは、ページに JavaScript 変数を設定し、それを .js ファイルで参照することです。globalつまり、変数を使用します。

.cshtml で:

var someVariable = '@(Html.someHtmlFunction())' // make sure this is before .js
@section JavaScript {
    <script type="text/javascript" src="@Url.Content("/Scripts/Index.js")" />
}

Index.js で:

console.log(someVariable);
于 2013-03-07T12:14:10.517 に答える