[英]Getting C# Request.Form in a separate class
我正在編寫一個C#
助手來解析HTML
POST
並創建一個簽名字符串。 該字符串用於輔助形式的隱藏輸入。 如何在靜態C#
方法中訪問Request.Form
字段? HttpWebResponse
? 使用System.Web.UI.Page
?
public static string cyberSourceCheckoutHtml()
{
List<string> _string = new List<string>();
IDictionary<string, string> parameters = new Dictionary<string, string>();
try
{
if (Request.Form.AllKeys.Length > 0)
{
foreach (var key in form.AllKeys)
{
_string.Add("<input type=\"hidden\" id=\"" + key + "\" name=\"" + key + "\" value=\"" + Request.Params[key] + "\"/>\n");
parameters.Add(key, Request.Params[key]);
}
}
string sig = Corbis.Web.UI.CheckoutV2.Helpers.CybersourceSecureAcceptance.sign(parameters);
_string.Add("<input type=\"hidden\" id=\"signature\" name=\"signature\" value=\"" + sig + "\"/>\n");
//<form action="https://testsecureacceptance.cybersource.com/silent/pay" method="post"/>
return _string.ToString();
}
catch
{
return "";
}
}
您有2個選擇:
例如,Request.Form數據只不過是一個NameValueCollection。 這樣你就可以像
public static string cyberSourceCheckoutHtml(NameValueCollection formData)
{
// use formData instead of Request.Form
}
選項#2是使用System.Web命名空間中提供的Static Helper屬性來訪問請求。
NameValueCollection formData = HttpContext.Current.Request.Form;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.