Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/317.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/24.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按钮发布HTTP?_C#_.net_Asp.net - Fatal编程技术网

C# 如何从ASP.NET按钮发布HTTP?

C# 如何从ASP.NET按钮发布HTTP?,c#,.net,asp.net,C#,.net,Asp.net,抱歉,另一个超级基本的ASP.NET问题。这太尴尬了 我正在阅读关于如何在ASP.NET页面之间传递值的文章 在第二种方法中,他们建议连接一个按钮并使用POST将用户引导到另一个页面。我不知道怎么做。如何发布HTTP 当源页面使用HTTP POST操作导航到目标页面时,您可以从目标页面的表单集合中检索已发布的值 以下是我将用户发送到新页面的方式: protected void btnSubmitForPost_Click(object sender, EventArgs e) {

抱歉,另一个超级基本的ASP.NET问题。这太尴尬了

我正在阅读关于如何在ASP.NET页面之间传递值的文章

在第二种方法中,他们建议连接一个按钮并使用POST将用户引导到另一个页面。我不知道怎么做。如何发布HTTP

当源页面使用HTTP POST操作导航到目标页面时,您可以从目标页面的表单集合中检索已发布的值

以下是我将用户发送到新页面的方式:

    protected void btnSubmitForPost_Click(object sender, EventArgs e)
    {
        Response.Redirect("GetViaPost.aspx");
    }
编辑 最终解决办法:
您可以使用ASP.NET webforms。执行以下操作:在第一页上,创建控件和按钮,将用户发送到新页面。从此按钮处理单击事件。如下所述,使用Server.Transfer和endResponse=false,而不是Response.Redirect()。当您使用Response.Redirect时,您的post数据将被清除。我不需要在表单或其他任何内容中指定操作。

在ASP.NET中,当您单击按钮时,默认情况下,您将发布整个页面的字段(因为上次我选中时,它包含在一个巨大的
标记中。单击按钮后,您可以访问这些值,如下所示:

string MyPostedValue = Request.Form["MyFormField"];
protected void btnSubmitForPost_Click(object sender, EventArgs e)
{
    Server.Transfer("GetViaPost.aspx", true);
}
string MyPostedValue = Request.Form["MyFormField"];
*根据您问题中的更新,编辑,将Response.Redirect()更改为Server.Transfer(),如下所示:

string MyPostedValue = Request.Form["MyFormField"];
protected void btnSubmitForPost_Click(object sender, EventArgs e)
{
    Server.Transfer("GetViaPost.aspx", true);
}
string MyPostedValue = Request.Form["MyFormField"];
然后,在GetViaPost.aspx的页面中,您可以获得从发送页面传递的任何表单/查询字符串变量,如下所示:

string MyPostedValue = Request.Form["MyFormField"];
protected void btnSubmitForPost_Click(object sender, EventArgs e)
{
    Server.Transfer("GetViaPost.aspx", true);
}
string MyPostedValue = Request.Form["MyFormField"];

ASP.NET按钮始终执行发布。您可以使用按钮的PostBackUrl属性设置按钮发布到的页面。如果保留此属性为空,则按钮将发回驻留在上的同一页面


查看更多信息。

如果在代码背后连接到按钮单击事件,则单击按钮。这是一次回发

您拥有的任何控件都可以通过codebehind中的id(以及在其上设置的任何值)访问

在向其他页面发布数据方面,您有许多选择

查询字符串、会话、cookie和视图状态

给出更新响应的基本示例(无错误处理)。重定向可能是:

int someId = int.Parse(txtBoxOnThePage.Text);
Response.Redirect(string.Format("GetViaPost.aspx?myId={0}", someId));
然后在GetViaPost页面上,您可以通过以下方式将其拉出:

HttpContext.Current.Request.QueryString["myId"]

这是一个非常好的学习信息和教程来源。

如果我读对了,所有这些答案都忽略了这个问题

您正在查看从一个Asp.Net表单到另一个Asp.Net表单的发布,其中一种方法是您想要了解的—执行普通的http发布。这本书或文章可能已经告诉您有关服务器的信息。如果我猜对了,请将传输作为另一种选择

如果我答对了问题,那么最简单的答案是不要使用标准ASP.Net表单(带有runat=server属性)作为起点,而是使用简单的标准html表单发布到ASP.Net页面

<form action = "targetpage.aspx" method="post">
    ...some form fields here
   <input type = "submit">
</form>

…这里有一些表单字段

那么,如何使用按钮让浏览器转到新页面?使用Response.Redirect或Server.Transfer。您可以尝试使用Server.Transfer(“mypage.aspx”)在按钮的单击事件中。按钮的默认行为是发布到您正在处理的同一页面。使用Server.Transfer会将值从一个页面持久化到另一个页面。根据您对问题的编辑更新了我的答案。希望有帮助!如何设置事件处理程序?我编辑了答案以提供更多信息详细信息。如果您发布到另一个页面,那么不,您不会为按钮处理程序创建事件处理程序。您只需使用页面加载事件。不要感到尴尬。您必须提问才能了解。我认为部分问题在于ASP.NET混淆了许多标准web技术,以使事情“更简单”为桌面程序员开发。ASP.NET MVC解决了很多问题,尽管我还没有机会尝试。如果您在ASP.NET中进行所有开发,那么这将需要嵌套表单。我猜这会给您带来麻烦。这可以用标准ASP.NET表单来完成吗?或者使用ASP.NET webform的HTTP POST是一种没有人这样做?同意,如果他想要一种更回归基本的工作方式,他应该看看ASP.NETMVC(我喜欢它)。您的答案将是默认实现。否则,他将失去webforms的易用性和所有方便的服务器控件。因此,如果您正在执行HTTP POST,那么您可能使用的是简单的标准html表单,而不是基于webforms的表单。这并不是说它是HTTP POST表明它是标准html表单。webforms只是POST t t to默认情况下,您仍然可以通过添加action=“SomePage”将webform帖子发送到另一个页面,如图所示。