4

ビューバッグが1つあります。アクション結果メソッドでサーバー側からそのビューバッグ値を入力しました。JsファイルでこのViewbag値にアクセスする必要があります。*.cshlページでこのViewbagに正しくアクセスできます。以下に私のサンプルコードを示します。

Var objMode = '@ViewBag.Mode'; //*.cshtmlページに書き込まれます。

しかし、私は*.jsファイルの上記の構文のようにこの値にアクセスする必要があります。

ありがとう、Nirav Parikh

4

2 に答える 2

8

できません。非表示の入力に値を書き込んViewBagでから、jsファイルから読み取ることができます。

<input type="hidden" value="@ViewBag.Mode" id="mode" />

JSファイル:

var mode = document.getElementById('mode').value;

編集:別のオプション:

<script src="..." type="text/javascript" onload="InitMyScript('@ViewBag.Mode')"></script>

JSファイル:

function InitMyScript(mode){
   //other code here
}
于 2013-03-26T11:45:48.990 に答える
4

含まれているスクリプトファイルでViewBagまたはその他のコンテキストアイテムを参照することはできません。これらは静的ファイルとして提供され、サーバーで処理されないためです(必要に応じて、JavaScriptのコンテンツタイプでビューを提供することで回避できます)。

値をJS変数としてビューに配置する必要があります。

<script type="text/javascript">
    // the object is only required if you want a nice syntax for multiple values.
    if (!window.ViewBag) window.ViewBag = {};
    window.ViewBag.Mode = @Html.Raw(Json.Encode(this.ViewBag.Mode));
</script>

これで、スクリプトファイルでそれを参照できます。

于 2013-03-26T11:46:27.663 に答える