2012-01-22 2 views
2

J'ai un projet ASP.NET MVC3 qui utilise une bande d'onglets sur certaines pages. L'arrêt de tabulation est construit en JavaScript. Lorsque l'utilisateur effectue une action, je voudrais être en mesure de les rediriger vers la bonne page avec l'onglet correct ouvert. Pour ce faire, j'ai besoin soit de passer une variable dans l'URL et de la gérer en utilisant JavaScript, soit de lui renvoyer une variable en utilisant ViewBag ou TempData, et encore une fois, en utilisant JavaScript. Donc, ma question est, comment puis-je accéder à ces variables en utilisant JavaScript?ASP.NET MVC3, Razor - Utilisation des variables ViewBag ou URL en Javascript

+0

est votre javascript dans le fichier cshtml ou dans un fichier js séparé ? –

+0

dans le fichier cshtml, pourquoi? –

Répondre

2

Vous pouvez passer la valeur en tant que paramètre de chaîne de requête lors de la redirection et dans l'action cible simplement définir un modèle de vue:

public class MyViewModel 
{ 
    public string MyValue { get; set; } 
} 

puis une ancre ou une action de contrôleur qui redirigera à l'action cible et passer myvalue comme paramètre de chaîne de requête:

@Html.ActionLink("go to foo", "foo", new { myvalue = "foo bar" }) 

et lorsque le lien est cliqué l'utilisateur est redirigé vers l'action Foo qui prend le modèle de vue comme argument pour que la liaison se fait automatiquement et passe thi s modèle de vue de la vue correspondante:

public ActionResult Foo(MyViewModel model) 
{ 
    return View(model); 
} 

et dans la vue correspondante, vous pouvez faire ce que vous voulez avec le modèle de vue:

@model MyViewModel 
<script type="text/javascript"> 
    var myValue = @Html.Raw(Json.Encode(Model.MyValue)); 
    // TODO: do something with the value 
</script> 
+0

Merci monsieur, juste ce que je cherchais! –

Questions connexes