Comment puis-je lire un ViewBag valeur?
J'ai besoin de lire la valeur d'une viewbag avec une manette, comment puis-je le faire?
Contrôleur
app.controller('ConseilManagOrga', function ($scope, $http) {
$http.get("../api/Form/GetForm?id=" + @ViewBag.id).success(function (response) {
$scope.FormFund = response;
});
});
ViewBag
if (Name == "ConseilManagOrga")
{
ViewBag.Form = "FormChildren";
ViewBag.Controller = "ConseilManagOrga";
ViewBag.Image = "stone.jpg";
ViewBag.id = 3;
}
- Ce qui sur terre est une viewBag? Est-ce lié Angulaire de toute façon? Si non, je te suggère d'ajouter une balise qui l'explique
- Asp.Net MVC Viewbags sont résolus côté serveur sur votre point de vue avant le point de vue est servi. Autant que je sache, ce n'est pas possible / n'aurait pas de sens de toute façon. Vous pouvez définir un globala variable dans votre point de vue à un Viewbag mais semble comme un mauvais choix de conception
- Je suis d'accord c'est un mauvais choix de conception pour l'affecter à une variable globale, mais vous pouvez tout aussi facilement attribuer à un AngularJS portée variable. Entendez-vous envisager l'utilisation de variable globale d'un mauvais choix de conception, ou de l'ensemble de la pratique en général?
- Il n'y a presque pas de raison de faire ce que la personne essaie de faire depuis Angulaire à l'intérieur de l'app ASP.NET MVC n'évaluera que les biens de la viewbag une fois sur la charge
Vous devez vous connecter pour publier un commentaire.
La meilleure façon à mon avis de le faire est d'écrire une balise de script et de définir la valeur d'une variable JavaScript pour le ViewBag valeur à l'aide de Rasoir:
Cela va créer un nom de variable globale MyVariableFromViewBag. Bien sûr, vous devriez éviter d'utiliser javascript global des variables dans le code de production. Modifier l'exemple d'affecter la sécurité de la variable.
Une autre solution consiste à utiliser un champ caché qui prend la valeur de votre Viewbag valeur:
Ensuite dans votre fichier javascript, vous pouvez accéder à cette valeur par id:
À l'aide de ng-init est aussi une autre façon de le faire.