Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# ASP.NET中的表单获取_C#_Asp.net_Asp Classic - Fatal编程技术网

C# ASP.NET中的表单获取

C# ASP.NET中的表单获取,c#,asp.net,asp-classic,C#,Asp.net,Asp Classic,我正在尝试将一个经典的ASP页面转换为ASP.NET 3.5 在页面上,有一个小表单,用于将您的电子邮件地址提交到外部新闻稿网站。代码如下: <form name="emailForm" action="http://www.site.com/emailsignup.aspx" method="get"> <input type="text" name="email" /> <input type="submit" id="btnSubmit" na

我正在尝试将一个经典的ASP页面转换为ASP.NET 3.5

在页面上,有一个小表单,用于将您的电子邮件地址提交到外部新闻稿网站。代码如下:

<form name="emailForm" action="http://www.site.com/emailsignup.aspx" method="get">
    <input type="text" name="email" />
    <input type="submit" id="btnSubmit" name="btnSubmit" />
</form>

我希望我能把这个放到页面上,它会工作,但它没有,它只是重新加载页面


我该怎么做?是否需要在按钮单击事件的代码隐藏中执行此操作?

在ASP.Net中,默认情况下,导致回发的控件(如按钮)会将页面提交回自身甚至,如果您将页面上的操作属性设置为另一个文件。你想要的是所谓的跨页张贴。以下MSDN页面向您展示了如何使用ASP.Net 4执行此操作,但顶部有一个链接,可以访问旧版本:

否则,您可以在代码隐藏中使用按钮的Click事件处理程序


希望这有帮助。

在ASP.Net中,默认情况下,如果将页面上的action属性设置为其他文件,则导致回发的控件(如按钮)会将页面提交回自身。你想要的是所谓的跨页张贴。以下MSDN页面向您展示了如何使用ASP.Net 4执行此操作,但顶部有一个链接,可以访问旧版本:

否则,您可以在代码隐藏中使用按钮的Click事件处理程序


希望这有帮助。

表单标记中一定缺少
runat=“server”

尝试通过IDE创建一个页面,并在表单标记之间粘贴输入标记的代码

<input type="text" name="email" />
<input type="submit" id="btnSubmit" name="btnSubmit" />

表单标记中必须缺少
runat=“server”

尝试通过IDE创建一个页面,并在表单标记之间粘贴输入标记的代码

<input type="text" name="email" />
<input type="submit" id="btnSubmit" name="btnSubmit" />

默认情况下,它肯定是嵌套在表单aspx get中结束的


根据页面的布局,您可以对其进行修改,以避免以嵌套表单结束。如果这是不可能的,我认为您无法使用表单,因此您必须考虑另一种解决方案,例如使用js构建get。

默认情况下,它肯定会嵌套在表单aspx get中


根据页面的布局,您可以对其进行修改,以避免以嵌套表单结束。如果这是不可能的,我认为您无法使用表单,因此您必须考虑另一种解决方案,例如使用js构建get。

最简单的方法是将该
标记放在通常包装所有ASP.NET控件的主
标记之外


如果您使用的是母版页,并且唯一可以使用的内容占位符是在该
内,那么最简单的方法是将该
标记放在通常包装所有ASP.NET控件的主
标记之外


如果您使用的是母版页,并且您可以使用的唯一内容占位符是在
中,那么您的页面的文件名是什么?您是否有一个表单包含整个页面?这会破坏它,因为表单中不能有表单。@Kirk-Default.aspx,在根目录中。点击“”将电子邮件地址订阅到邮件列表中吗?而且,您是否尝试在不重新加载页面的情况下向用户订阅电子邮件列表?或者你希望重新加载页面,但用户将订阅电子邮件列表?是的,这真的很想问你为什么要使用GET来完成此任务@史蒂文:这正是
method=“get”
的用意。你的页面的文件名是什么?你有没有一个表格把整个页面都封起来?这会破坏它,因为表单中不能有表单。@Kirk-Default.aspx,在根目录中。点击“”将电子邮件地址订阅到邮件列表中吗?而且,您是否尝试在不重新加载页面的情况下向用户订阅电子邮件列表?或者你希望重新加载页面,但用户将订阅电子邮件列表?是的,这真的很想问你为什么要使用GET来完成此任务@史蒂文:这正是
method=“get”
的目的。我怀疑这只对所有控件通常嵌套的表单有效。添加不同的表单(ASP.NET使用的表单之外)不会有这些限制。你知道吗?我假设你的意思是添加一个没有runat=“server”的附加表单,因为一个页面中不能有多个服务器端表单。如果这就是您的意思,那么您认为它不会回发是正确的,但是您将无法使用服务器端控件或常规表单的viewstate。问题是,我认为OP在服务器表单中插入了html表单,这是不推荐的。根据结果,似乎outter服务器表单正在接管并发回。我怀疑这只对所有控件通常嵌套在其中的表单有效。添加不同的表单(ASP.NET使用的表单之外)不会有这些限制。你知道吗?我假设你的意思是添加一个没有runat=“server”的附加表单,因为一个页面中不能有多个服务器端表单。如果这就是您的意思,那么您认为它不会回发是正确的,但是您将无法使用服务器端控件或常规表单的viewstate。问题是,我认为OP在服务器表单中插入了html表单,这是不推荐的。根据结果,似乎outter服务器表单正在接管并发回。为什么runat=“server”会更改客户端发生的事情。表单的背面贴错了服务器。也就是说,页面的来源,而不是action属性中指定的。为什么runat=“server”会更改客户端上发生的事情。表单的背面贴错了服务器。即页面来源的页面,而不是action属性中指定的页面。