HTML/ASP.NET: <input type=“hidden” name=“reference” value=“ABC”/>
Je veux juste demander si il y a une possibilité de changer:
<input type="hidden" name="reference" value="ABC"/>
dans cette:
<input type="hidden" name="reference" value="any values I want"/>
où je peux mettre toutes les valeurs derrière .cs/C# - faire de façon dynamique. La passerelle de paiement que j'utilise exige et je ne peux pas trouver un moyen de inclus un ASP.NET de contrôle ( ?)
et je suis besoin de vos suggestions/commentaires à ce sujet. Merci.
PS. <asp:HiddenField ID="reference" runat="server" Value="ABC" />
ne fonctionne pas parce que la passerelle de paiement doit spécifiquement le nom de la propriété.
OriginalL'auteur abramlimpin | 2010-07-01
Vous devez vous connecter pour publier un commentaire.
Je sais que c'est un vieux post, mais pour ceux qui cherchent à résoudre ce problème maintenant - Si vous ajoutez
runat="server"
à l'entrée, le nom sera changé (p. ex.MainContentArea_ctl00_ctl01_ctl01_amount
).ClientIdMode="Static"
aide seulement pour l'ID.Pour contourner ce problème:
Dans votre page html à utiliser un Littéral :
Dans le fichier code-behind, assigner une chaîne à l'attribut de Texte Littéral de Cette chaîne doit être le code html que vous aimeriez qu'il soit. La valeur correcte peut également être ajoutée à la valeur de champ:
Ce sera ensuite compilé en tant que:
Cela va donner de l'information à la passerelle de paiement avec le nom correct, mais votre valeur peut être géré de façon dynamique. Répétez l'opération pour toutes les autres valeurs qui doivent être ajoutés avant l'envoi.
OriginalL'auteur Samantha
Vous pouvez simplement mettre
runat="server"
sur le contrôle d'accès à partir de votre code behind:Puis, dans votre code derrière:
Noter que dans ce cas, l'attribut "id" est nécessaire parce que quand vous avez
runat="server"
, l'id de l'attribut est utilisé pour indiquer le nom de la variable.reference.Value = "any values I want";
Pour plus d'informations: msdn.microsoft.com/en-us/library/....OriginalL'auteur Dean Harding
Vous pouvez utiliser l'entrée standard de type caché que si vous travaillez avec des fichiers HTML statiques ou de Rasoir, et s'appuient sur la
<%=
expression qui est évaluée au moment du rendu plutôt surDataBind()
temps que le<%#
expressions.De cette façon, vous pouvez avoir un html normal, pour lesquels vous pouvez avoir ASP.NET WebFroms générer cachés entrée de la valeur pour vous côté serveur, sans avoir à marquer l'entrée avec
runat="server"
ou à l'aide de<asp:HiddenInput
de contrôle. Voir l'exemple ci-dessous, qui devrait faire la job:Bien sûr, cette approche n'est pas one size fits all, mais qui semble être la plus proche de le satisfaire à l'exigence décrite il y a 7 ans...
OriginalL'auteur Petar Marinov
//<input type="hidden" name="__EVENTTARGET" id="__EVENTTARGET" value="" />
protected string GetVariableValue(string AspxPage, string inputTagName)
{
ra migirad
string RegPattern = string.Format("(?<=({0}\".value.\")).*(?=\"./>)", inputTagName);
Regex regex = new Regex(RegPattern, RegexOptions.IgnoreCase);
Match match = regex.Match(AspxPage);
if (string.IsNullOrEmpty(match.Value))
{
RegPattern = string.Format("<input[^>]*{0}[^>]*value=\"([^\"]*)\"", inputTagName);
regex = new Regex(RegPattern, RegexOptions.IgnoreCase);
match = regex.Match(AspxPage);
return match.Groups[1].Value;
}
return match.Value;
}
OriginalL'auteur Hadi Hoseini