【问题标题】:Send POST To Different Website (ASP.NET 3.5)将 POST 发送到不同的网站 (ASP.NET 3.5)
【发布时间】:2011-10-03 15:22:06
【问题描述】:

准备 POST 数据并发送到与当前<form ...> 部分中指定的不同网站的 VB.NET(或 C#)代码是什么?

编辑:我在网上使用HttpWebRequest 找到的每个算法都从其他站点获取返回页面并使用Response.Write 输出它。我想导航到发布数据的新页面并完全离开当前页面。

EDIT2:(对我想要的更具体的描述) 下面的代码显示了一个折线图。当用户点击数据点的标签时,页面会刷新(执行回发)并显示点击点的 x 值。

相反,在单击标签时,我想将 other_id="#VALX" 作为唯一的 POST 数据发送到 other_results.aspx,就像用户在 other_search.aspx 上的 TextBox 中键入了相应的 id 并单击了 @ 987654329@.

我该怎么做?

<%@ Page Language="VB" AutoEventWireup="true" %>

<%@ Register Assembly="System.Web.DataVisualization, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
    Namespace="System.Web.UI.DataVisualization.Charting" TagPrefix="asp" %>
<%@ Import Namespace="System.Data.OracleClient" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
    Protected Sub Chart1_Click(sender As Object, e As System.Web.UI.WebControls.ImageMapEventArgs)
        Response.Write(e.PostBackValue)
    End Sub
</script>
<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
    <title>My Title</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:Chart ID="Chart1" runat="server" OnClick="Chart1_Click"
            DataSourceID="myDataSource">
            <Series>
                <asp:Series Name="Series1" ChartType="Line"
                    IsValueShownAsLabel="true" XValueMember="id"
                    YValueMembers="value" PostBackValue="#VALX" />
            </Series>
            <ChartAreas>
                <asp:ChartArea Name="ChartArea1" />
            </ChartAreas>
        </asp:Chart>
        <asp:SqlDataSource ID="myDataSource" runat="server"
            ConnectionString="<%$ ConnectionStrings:myConnStr %>"
            ProviderName="<%$ ConnectionStrings:myConnStr.ProviderName %>"
            SelectCommand="SELECT id, value FROM myTable"
            DataSourceMode="DataReader"/>
    </div>
    </form>
</body>
</html>

【问题讨论】:

    标签: c# asp.net vb.net .net-3.5


    【解决方案1】:

    如果您需要从您的 C#/VB.NET 页面向另一个网站发送POST 请求,您可以查看HttpWebRequest Class

    【讨论】:

    • 该死!我打算将其添加到我的答案中,但您击败了我。好工作! +1 给你。
    • 如果您不需要对表单内容做任何事情 - 如果您只是想将其发布到另一台服务器,请参阅我的答案的前半部分。只需输入一个简单的 html 表单,就像这是一个 html 页面一样。
    • 再次编辑了主帖,并提供了一个更具体的示例来说明我想要完成的工作。
    【解决方案2】:
    <form action="someotherwebsite/someotherform">
    .....
    </form>
    

    换句话说,只需创建一个标准的 html 表单。不要在 Form 标签中包含 'runat="server"',它将被视为标准的 html 表单。一个 apsx 页面中可以有多个 Form 标签。您只能有一个设置了 runat="Server" 的表单,但您的页面上可以有其他表单,只要它们不嵌套即可。

    编辑

    但是,如果您需要自己进行一些服务器端处理,并且除了您需要在服务器端进行的工作之外,您还想发送帖子数据,那么您可以使用 WebRequest 调用其他站点的表单类(正如@Chris Pebble 所说,当他击败我达到预期答案的第二部分时。)

    【讨论】:

    • 再次编辑了主帖,并提供了一个更具体的示例来说明我想要完成的工作。
    猜你喜欢
    • 2010-11-27
    • 2016-01-27
    • 1970-01-01
    • 1970-01-01
    • 2011-10-11
    • 2010-10-25
    • 2015-09-20
    • 1970-01-01
    • 2012-05-08
    相关资源
    最近更新 更多