2010-05-27 4 views
2

Pourquoi les gens mettent javascript dans le code derrière? Je pense qu'il est moche d'avoir 100 (voir ci-dessous) de ces ... Y at-il quelques raisons fondamentales que javascript doit être dans le code derrière dans certains cas? Et quand il devrait dans l'aspx. ??ASP.NET javascript. Mettez-le dans le code derrière ou placez-le dans le fichier .aspx?

// now we gotta recalc fields     
      szCalcBenefitsTotal += "   CalcCostFromPct('" + tbSocialSecurityPercent3.ClientID + "', '" + tbSocialSecurity3.ClientID + "', '" + tbSalaryAdjusted3.ClientID + "');"; 
      szCalcBenefitsTotal += "   CalcCostFromPct('" + tbMedicarePercent3.ClientID + "', '" + tbMedicare3.ClientID + "', '" + tbSalaryAdjusted3.ClientID + "');"; 
      szCalcBenefitsTotal += "   CalcCostFromPct('" + tbHealthInsurancePercent3.ClientID + "', '" + tbHealthInsurance3.ClientID + "', '" + tbSalaryAdjusted3.ClientID + "');"; 
      szCalcBenefitsTotal += "   CalcCostFromPct('" + tbLifeInsurancePercent3.ClientID + "', '" + tbLifeInsurance3.ClientID + "', '" + tbSalaryAdjusted3.ClientID + "');"; 
      szCalcBenefitsTotal += "   CalcCostFromPct('" + tbVacationPercent3.ClientID + "', '" + tbVacation3.ClientID + "', '" + tbSalaryAdjusted3.ClientID + "');"; 
      szCalcBenefitsTotal += "   CalcCostFromPct('" + tbSickLeavePercent3.ClientID + "', '" + tbSickLeave3.ClientID + "', '" + tbSalaryAdjusted3.ClientID + "');"; 
      szCalcBenefitsTotal += "   CalcCostFromPct('" + tbRetirementPercent3.ClientID + "', '" + tbRetirement3.ClientID + "', '" + tbSalaryAdjusted3.ClientID + "');"; 
+0

Ok. Donc je suppose que c'est sûr que vous dites que vous devriez seulement le mettre dans votre .aspx à moins qu'il n'y ait une très bonne raison. Dans cet exemple, j'ai un travail dont je ne vois pas la raison. (C'est juste saisir les zones de texte HTML et faire des calculs) .. La même chose peut être faite côté client avec le <% = clientID%> droit? – punkouter

+0

Mis à jour ma réponse pour répondre à votre question. – Aren

Répondre

3

C'est probablement dans le code-behind car le javascript est généré dynamiquement par le code ASP.NET. Ce n'est pas la meilleure façon de le faire, il est préférable d'injecter des variables dans des endroits et d'utiliser jscript statique pour agir sur les variables générées dynamiquement.

Je suggère de mettre votre javascript dans son propre .js fichier ne pas encombrer votre balisage HTML si possible, mettez autrement dans le .aspx

Edit:(Pour répondre à votre question de commentaire)

Oui, vous pouvez faire la même chose en utilisant <%= %> et <%# %> et en ASP.NET 4.0 <%: %>. Construit également comme <asp:Repeater></asp:Repeater> peut être utilisé pour boucler sur les listes/énumérables, donc en théorie, vous pouvez faire à peu près tout dans le .aspx

1

Vous avez raison; c'est moche.

Ils génèrent probablement le Javascript sur la base d'informations qui ne sont disponibles que dans le code-behind.

En général, vous devriez mettre votre Javascript dans l'ASPX, ou (de préférence) dans un fichier .JS séparé.

Questions connexes