Vs'12 asp.net C # MVC4 - Int.Appl.Template EF Code First
Voici mon très simple Script
<script class="TractsScript">
$('#Add').click(function (e) {
var val = @ViewBag.ForSection;
alert(val);
});
</script>
Comme par exemple, je veux simplement définir une variable dans mon script
ou UTILISER un Viewbag.
ou Model.
Je n'ai pas pu trouver de réponse dans aucun des forums suivants: StckTrace1 , StackTraceBetterAnswer
D'autres choses que j'ai essayées:
var model = @Html.Raw(Json.Encode(Model))
alert(model.Sections);
alert(@ViewBag.ForSection);
Vous pouvez le faire de cette façon, en fournissant Json ou toute autre variable:
1) Par exemple, dans le contrôleur, vous pouvez utiliser Json.NET
pour fournir Json
au ViewBag
:
ViewBag.Number = 10;
ViewBag.FooObj = JsonConvert.SerializeObject(new Foo { Text = "Im a foo." });
2) Dans le View
, placez le script comme ceci en bas de la page.
<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>
Ce que vous avez devrait fonctionner. Cela dépend du type de données que vous définissez, c'est-à-dire s'il s'agit d'une valeur de chaîne, vous devez vous assurer qu'elle est entre guillemets, par exemple.
var val = '@ViewBag.ForSection';
Si c'est un entier, vous devez analyser en un, c'est-à-dire.
var val = parseInt(@ViewBag.ForSection);
essayez cette méthode
<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>
Merci
Utilisez des guillemets simples ('
):
var val = '@ViewBag.ForSection';
alert(val);
Quand tu fais ça
var model = @Html.Raw(Json.Encode(Model));
Vous obtenez probablement une chaîne JSON et non un objet JavaScript.
Vous devez l'analyser dans un objet:
var model = JSON.parse(model); //or $.parseJSON() since if jQuery is included
console.log(model.Sections);