23

Vs'12 asp.net C# MVC4 - Int.Appl.Template EF Code First

ここに私の非常に単純なものがありますScript

<script class="TractsScript">

     $('#Add').click(function (e) {

         var val = @ViewBag.ForSection;
         alert(val);

     });
</script>

script例ごとに、変数を my or USE a Viewbag.orに設定したいだけですModel.

次のフォーラムのいずれでも回答を見つけることができませんでした: StckTrace1StackTraceBetterAnswer

私が試した他のこと:

var model = @Html.Raw(Json.Encode(Model))
alert(model.Sections);
alert(@ViewBag.ForSection);
4

5 に答える 5

29

あなたが持っているものはうまくいくはずです。設定しているデータのタイプによって異なります。つまり、文字列値の場合は、引用符で囲んでいることを確認する必要があります。

var val = '@ViewBag.ForSection';

整数の場合は、1 つとして解析する必要があります。

var val = parseInt(@ViewBag.ForSection);
于 2013-09-18T12:54:08.710 に答える
26

Json またはその他の変数を指定して、この方法を実行できます。

1) たとえば、コントローラーでは、以下Json.NETを提供するためJsonに使用できViewBagます。

ViewBag.Number = 10;
ViewBag.FooObj = JsonConvert.SerializeObject(new Foo { Text = "Im a foo." });

2)Viewで、このようなスクリプトをページの下部に配置します。

<script type="text/javascript">
    var number = parseInt(@ViewBag.Number); //Accessing the number from the ViewBag
    alert("Number is: " + number);
    var model = @Html.Raw(@ViewBag.FooObj); //Accessing the Json Object from ViewBag
    alert("Text is: " + model.Text);
</script> 
于 2013-09-18T13:10:13.300 に答える
2

一重引用符 ( ')を使用します。

var val = '@ViewBag.ForSection';
alert(val);
于 2017-01-06T21:46:53.777 に答える