0

我在电子商务网站上工作。最后,我需要集成我正在使用 payuBiz 的支付网关。在将 Trasaction 信息解析为 payu 时,我注意到 Request.Form 值是空的,这对我来说是个问题。如果我不使用母版页,代码也可以正常工作。它不能与母版页一起使用。

if (string.IsNullOrEmpty(ConfigurationManager.AppSettings("MERCHANT_KEY"))
|| string.IsNullOrEmpty(txnid1) 
|| string.IsNullOrEmpty(Request.Form(amount.ClientID)) 
|| string.IsNullOrEmpty(Request.Form(firstName.ClientID)) 
|| string.IsNullOrEmpty(Request.Form(email.ClientID)) 
|| string.IsNullOrEmpty(Request.Form(phone.ClientID)) 
|| string.IsNullOrEmpty(Request.Form(productInfo.ClientID)) 
|| string.IsNullOrEmpty(Request.Form(surl.ClientID)) 
|| string.IsNullOrEmpty(Request.Form(furl.ClientID))) {
    //error

    frmError.Visible = true;
    return;
} else {
    string myAmount = amount.Text;
    frmError.Visible = false;
    hashVarsSeq = ConfigurationManager.AppSettings("hashSequence").Split('|');
    // spliting hash sequence from config
    hash_string = "";
    foreach (string hash_var in hashVarsSeq) {
        if (hash_var == "key") {
            hash_string = hash_string + ConfigurationManager.AppSettings("MERCHANT_KEY");
            hash_string = hash_string + Convert.ToString('|');
        } else if (hash_var == "txnid") {
            hash_string = hash_string + txnid1;
            hash_string = hash_string + Convert.ToString('|');
        } else if (hash_var == "amount") {
            hash_string = hash_string + Convert.ToDecimal(Request.Form(hash_var)).ToString("g29");
            hash_string = hash_string + Convert.ToString('|');

        } else {
            hash_string = hash_string + Convert.ToString((Request.Form(hash_var) != null ? Request.Form(hash_var) : ""));
            // isset if else
            hash_string = hash_string + Convert.ToString('|');
        }
    }

    hash_string += ConfigurationManager.AppSettings("SALT");
    // appending SALT
    hash1 = Generatehash512(hash_string).ToLower();
    //generating hash
    // setting URL
    action1 = ConfigurationManager.AppSettings("PAYU_BASE_URL") + "/_payment";


}
4

1 回答 1

0

使用母版页时,控件的nameid被重命名为类似的东西。

<input type="test "name="ctl00$mainContentPane$TextBox1" id="ctl00_mainContentPane_TextBox1">

虽然您确实使用ClientIDjavascript 之类的客户端目的(因此得名)来获取正确的 ID,但在表单name中使用它来获取值。所以使用UniqueID

string value = Request.Form[TextBox1.UniqueID];

但是为什么不像往常一样使用这些值string value = TextBox1.Text;呢?

于 2017-06-13T13:15:16.877 回答