C# 在C中用codebehind创建和发布表单的最佳方法#

C# 在C中用codebehind创建和发布表单的最佳方法#,c#,asp.net,http-post,code-behind,C#,Asp.net,Http Post,Code Behind,我正在使用webforms,我需要为我的一个客户创建一个httpform并将其发布到支付网关。我正在使用母版页中显示的用户控件,但是它们在该页上已经有了一个,因此我很确定我不能再添加一个 从代码隐藏中用C#创建和发布表单的最佳实践方法是什么?目前我有以下几点: var nvc = new System.Collections.Specialized.NameValueCollection { {"EWAY_ACCESSCODE", ewayResponse.AccessC

我正在使用webforms,我需要为我的一个客户创建一个http
form
并将其发布到支付网关。我正在使用母版页中显示的用户控件,但是它们在该页上已经有了一个
,因此我很确定我不能再添加一个

从代码隐藏中用C#创建和发布表单的最佳实践方法是什么?目前我有以下几点:

var nvc = new System.Collections.Specialized.NameValueCollection
    {
        {"EWAY_ACCESSCODE", ewayResponse.AccessCode},
        {"EWAY_CARDNAME", txtCcName.Text},
        {"EWAY_CARDNUMBER", txtCcNumber.Text},
        {"EWAY_CARDEXPIRYMONTH", ddlCcExpMonth.SelectedValue},
        {"EWAY_CARDEXPIRYYEAR", ddlCcExpYear.SelectedValue},
        {"EWAY_CARDCVN", txtCcv.Text}
    };

    var client = new WebClient();
    client.UploadValues(ewayResponse.FormActionURL, nvc);

这确实有效,但有更好的/替代方法吗?

以下是我使用的解决方案:

警告(自己的博客帖子):


以下是我使用的解决方案:

警告(自己的博客帖子):


除了前面的建议之外:

  • 为什么一个(更简单的)工作不起作用

    
    
另外,假设您所指的是一个支付网关,那么您正在做一篇服务器端文章,这对PCI合规性有影响(而不是来自客户端/浏览器的直接表单文章)


Hth.

除了前面的建议之外:

  • 为什么一个(更简单的)工作不起作用

    
    
另外,假设您所指的是一个支付网关,那么您正在做一篇服务器端文章,这对PCI合规性有影响(而不是来自客户端/浏览器的直接表单文章)


Hth.

COOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO。所以最好的选择是爱尔兰酋长的解决方案?或者有没有更优雅的方法呢?@AlexFrame如上所述,
Button.PostBackUrl
不起作用的原因是什么?它将要做的实际上是直接发布到您设置的url,解决PCI问题。我没有尝试下面的建议,但是快速阅读代码可以删除服务器端的
标记。当然,这也意味着其他一些代码可能会受到影响(例如,页面上依赖默认回发行为的其他控件),您需要对其进行调整。它会“切换”表单标记,以便其他控件不受影响。我在我开发的五个不同的电子商务网站上使用了它。可以使用JavaScript,前提是它在所有客户端上都已启用。唯一的另一个解决方案是添加第二对表单标记,这是一个还没有人解释过的黑客行为;-)我同意PCI的观点,这就是为什么我想找到更好的解决方案。所以最好的选择是爱尔兰酋长的解决方案?或者有没有更优雅的方法呢?@AlexFrame如上所述,
Button.PostBackUrl
不起作用的原因是什么?它将要做的实际上是直接发布到您设置的url,解决PCI问题。我没有尝试下面的建议,但是快速阅读代码可以删除服务器端的
标记。当然,这也意味着其他一些代码可能会受到影响(例如,页面上依赖默认回发行为的其他控件),您需要对其进行调整。它会“切换”表单标记,以便其他控件不受影响。我在我开发的五个不同的电子商务网站上使用了它。可以使用JavaScript,前提是它在所有客户端上都已启用。唯一的另一个解决方案是添加第二对表单标记,这是一个还没有人解释过的黑客行为;-)
<asp:Button ID="externalPost" runat="server" PostBackUrl="http://www.somewhere.com/" Text="Post Somewhere" />