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
に変数を設定したい、またはViewbag.
またはModel.
を使用したい
次のフォーラムのいずれでも回答を見つけることができませんでした: StckTrace1 、 StackTraceBetterAnswer
私が試した他のこと:
var model = @Html.Raw(Json.Encode(Model))
alert(model.Sections);
alert(@ViewBag.ForSection);
この方法で、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>
あなたが持っているものが動作するはずです。設定するデータのタイプによって異なります。つまり、文字列値の場合は、引用符で囲む必要があります。
var val = '@ViewBag.ForSection';
整数の場合、parse it as one one.
var val = parseInt(@ViewBag.ForSection);
この方法を試してください
<script type="text/javascript">
function set(value) {
return value;
}
alert(set(@Html.Raw(Json.Encode(Model.Message)))); // Message set from controller
alert(set(@Html.Raw(Json.Encode(ViewBag.UrMessage))));
</script>
ありがとう
単一引用符('
):
var val = '@ViewBag.ForSection';
alert(val);
これをしているとき
var model = @Html.Raw(Json.Encode(Model));
JavaScriptオブジェクトではなくJSON文字列を取得している可能性があります。
オブジェクトに解析する必要があります:
var model = JSON.parse(model); //or $.parseJSON() since if jQuery is included
console.log(model.Sections);