2017-10-15 5 views
-2

Je reçois la valeur de mot-clé qui est sur la variable javascript, mais je veux remplacer cette valeur google trend script dynamiquement (qui écrit dans google trend script sous la section "mot-clé:"). Donc, je laisse convertir cette valeur à ma variable de vue rezor MVC puis remplacer google trend par la variable "@googleTrendkeyword". Cette méthode ne fonctionne pas parce que je suis incapable d'attribuer une variable de vue de rezeur MVC avec la variable javascript. Quelle est la meilleure solution? est-il possible sans MVC variable de rezor converti? Quelle est la meilleure pratique?javascript variable à mvc rezor variable

Javascript:

<script> 
var keyword = "found some value"; 
</script> 

MVC Voir:

@{ string googleTrendkeyword = 'assign the value from js variable'; } 

scénario Google tendance:

<script type="text/javascript" src="https://ssl.gstatic.com/trends_nrtr/1173_RC01/embed_loader.js"></script> 
<script type="text/javascript"> 
    trends.embed.renderExploreWidget("TIMESERIES", { "comparisonItem": [{ "keyword": "need to set keyword value here", "geo": "", "time": "today 12-m" }], "category": 0, "property": "" }, { "exploreQuery": "q=arts&date=today 12-m", "guestPath": "https://trends.google.co.in:443/trends/embed/" }); 
</script> 
+1

Vous aurez besoin de repenser ce que vous essayez d'accomplir effectivement. Le code côté serveur s'exécute * sur le serveur * avant même que la page ne soit envoyée au navigateur. Il existe des moyens d'envoyer des valeurs JavaScript au serveur (AJAX), mais vous ne pouvez pas attribuer directement une variable du futur comme ça. – David

+0

Ok. comment puis-je atteindre mon objectif alors? Je dois faire google tendance dynamique mot-clé –

+0

Que faites-vous finalement avec la variable 'googleTrendkeyword'? Pourquoi est-il nécessaire du côté serveur du tout? – David

Répondre

4

Vous pouvez "passer" une variable de rasoir à une variable JavaScript mais pas l'autre moyen de contourner. Il serait possible en plaçant la variable dans @ champ HTML.Hidden comme

@Html.Hidden("variableName", VariableValue); 

pour JavaScript:

<script> 
    console.log("Variable value: ", variableName.value);// OR WHATEVER FUNCTION YOU WANT TO PERFORM 
</script>