同一页面中的多个表单

时间:2018-01-29 19:55:45

标签: asp.net forms multiple-forms

我一直在寻找解决方案很长一段时间但找不到  解。请帮我找到解决方案。

我在x.aspx页面中有一个表单。表格在下面

<form name="add_fund_conf" runat="server" action="y.aspx" method="POST">
    <div >
        <b>Add Funds From:</b>
    </div>
    <div >                                            
        <select id="add_funds_from" runat="server" name="add_funds_from" >
            <option value="">Select Gateway</option>
            <option value="1">Perfect Money </option>
            <option value="2">BitCoin </option>
            <option value="3">Payeer </option>
        </select>
    </div> 
    <div>
        <b>Amount To Add:</b> USD
    </div>
    <div>
        <input type="text" id="amount_to_add"  runat="server" value="" class="form-control" />
    </div>

    <div align="center">
        <input type="submit" name="submit" class="btn btn-success" value="Add Funds" />
    </div>
</form>

and these are the javascript functions  in the head of  the y.aspx page 
<script language="JavaScript">
    function PM() {
        document._xclick.submit();
    }
</script>

<script language="JavaScript">
    function Payza() {
        document.formPayza.submit();
    }
</script>

<script language="JavaScript">
    function Payeer() {
        document.formPayeer.submit();
    }
</script>

以下表格在正文部分

<form name="_xclick" id="_xclick" runat="server" action="https://perfectmoney.is/api/step1.asp" method="POST">
</form>

<form name="formPayza" id="formPayza" runat="server" action="https://www.coinpayments.net/index.php" method="post">                         
</form>

<form name="formPayeer" method="GET" action="https://payeer.com/merchant/">
</form>

在代码隐藏文件中我编写了以下代码。我一直在寻找解决方案很长一段时间但找不到 解。请帮我找到解决方案。

if (!IsPostBack)
{
    NameValueCollection nvc = Request.Form;
    int add_funds_from = Convert.ToInt32(nvc["add_funds_from"]);
    int amount_to_add = Convert.ToInt32(nvc["amount_to_add"]);
    if(add_funds_from==1)
    {                
        ClientScript.RegisterClientScriptBlock(this.GetType(), "blah", "PM();", true);
    }
    else if (add_funds_from==2)
    {
        ClientScript.RegisterClientScriptBlock(this.GetType(), "blah", "Payza();", true);
    }
    else 
    {
        ClientScript.RegisterClientScriptBlock(this.GetType(), "blah", "Payeer();", true);
    }
}

但显示以下错误的页面

  

一个页面只能有一个服务器端的Form标签。描述:一个   在执行当前Web期间发生了未处理的异常   请求。请查看堆栈跟踪以获取有关的更多信息   错误以及它在代码中的起源。            异常详细信息:System.Web.HttpException:一个页面只能有一个服务器端的Form标记。

我是编码的新手。如果我犯了任何错误,请忽略。我一直在寻找解决方案很长一段时间但找不到  解。请帮我找到解决方案。

先谢谢你的帮助。

1 个答案:

答案 0 :(得分:0)

一个选项是为每个表单创建单独的aspx页面,然后在主表单中使用iframe。

projectDir

另一方面,每个<asp:Content ID="Content1" ContentPlaceHolderID="MainContent" Runat="Server"> <h1>Main Form</h1> <iframe src="payza.aspx"></iframe> <iframe src="payeer.aspx"></iframe> etc. </asp:Content> 必须具有唯一的名称。你有&#34; blah&#34;对于他们所有人,但他们都必须是不同的。

RegisterClientScriptBlock

也就是说,如果脚本要转到同一页面。如果你最终在iframe中使用不同的页面,那么它就不重要了。 (我想。也许使用不同的名字,所以它们是独一无二的。)