2009-08-18 7 views
1

J'essaie d'initialiser un appel jQuery avec certains paramètres, mais je ne sais pas comment y accéder.Comment accéder à certaines données dans une balise de script dans ASP.NET MVC?

Maintenant, j'ai:

 

// Controller code 

public ActionResult Offer() 
{ 
... 
    ViewData["max"] = max; 
    ViewData["min"] = min; 
... 
    return View(paginatedOffers); 
} 

// View Code 

script type="text/javascript"> 
$().ready(
    function() { 
    // Slider 
     $('#slider').slider({ 
      min: %= Html.Encode(ViewData["min"]) %>, 
      max: %= Html.Encode(ViewData["max"]) %> 
     }); 

    }); 

/script> 

 

Mais je remarque que je n'ai pas accès à ViewData dans la balise script.

Y a-t-il une erreur de mon côté? Pouvez-vous me diriger dans la bonne direction, s'il vous plaît?

(Je suis nouveau à ASP/C#).

Merci, M.

Modification: Début de la balise script et ASP intentionnellement laissé de côté.

+1

"Je n'ai pas accès" - qu'est-ce que cela signifie, avez-vous essayé d'exécuter votre code? Quelle erreur voyez-vous? –

Répondre

2

Comme Mike Chaliy a souligné, cela fonctionne, mais vous n pas d'intellisence. A cause d'un bug dans mon script, j'ai pensé que ça ne marchait pas du tout.

Merci Mike (et CMS aussi).

1

Il vous manque des personnages, le début des <%%> balises, et vous aurez besoin d'une virgule pour séparer les minutes et les options max:

<script type="text/javascript"> 
$(function() { 
    // Slider 
     $('#slider').slider({ 
      min: <%= Html.Encode(ViewData["min"]) %>,  
      max: <%= Html.Encode(ViewData["max"]) %> 
     }); 
    }); 

</script> 
+0

J'ai omis le signe start <, car l'aperçu l'a interprété comme une balise html. De plus, la virgule est présente dans mon code (pas cet exemple). Le problème est que je ne peux pas accéder ViewData à l'intérieur