Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/22.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
.net 使用POST或会话捕获数据_.net_Asp.net_Vb.net - Fatal编程技术网

.net 使用POST或会话捕获数据

.net 使用POST或会话捕获数据,.net,asp.net,vb.net,.net,Asp.net,Vb.net,我目前正在使用ASP.NET中的VB开发web应用程序 现在我有一个带有面板的页面,我们使用这些面板来显示/隐藏流量。当用户第一次进来时,他/她会看到一个包含客户端列表的gridview。然后,用户单击一行中的链接,并显示一个表单,他/她可以在其中更新客户信息 最初,我有一个超链接字段,将clientId放在url中,然后我会获取url并适当地编写代码 <asp:HyperLinkField Text='<%$ Resources:Resource, ManageClient %&g

我目前正在使用ASP.NET中的VB开发web应用程序

现在我有一个带有面板的页面,我们使用这些面板来显示/隐藏流量。当用户第一次进来时,他/她会看到一个包含客户端列表的gridview。然后,用户单击一行中的链接,并显示一个表单,他/她可以在其中更新客户信息

最初,我有一个超链接字段,将clientId放在url中,然后我会获取url并适当地编写代码

<asp:HyperLinkField Text='<%$ Resources:Resource, ManageClient %>' DataNavigateUrlFields="CLIENT_ID" DataNavigateUrlFormatString="~/clients/manage.aspx?clientId={0}" />

现在,我正在重新思考这一点,并想知道是否最好使用会话来通过它获取客户ID

<asp:TemplateField Visible="false"><ItemTemplate><asp:Label runat="server" ID="hidClientId" Text='<%# Bind("CLIENT_ID")%>' Visible="false" /></ItemTemplate></asp:TemplateField>
<asp:ButtonField Text='<%$ Resources:Resource, ManageClient %>' CommandName="Manage" />

或者使用POST方法,我不确定它在.NET中是如何工作的(但我在PHP中使用过)


任何帮助都将不胜感激。

我更喜欢使用查询字符串。取决于此数据是否敏感。如果是敏感的,我会使用session,因为跨页面发布是一场噩梦。

老实说,我认为您应该使用querystring(如第一个示例中所示)。主要原因是这将允许后退/前进/刷新按钮正常工作

如果您使用post或postback类型的方法,那么您会遇到这样的情况:用户可以点击refresh并获得令人讨厌的表单重新提交消息。有时候,表单帖子是有意义的,但我不认为发送一个小参数就是其中之一

现在,如果您仍然希望会话的功能能够记住状态,那么您仍然可以使用querystring来实现。只需将querystring传递给页面,将会话设置为querystring值。下次页面出现时,如果没有查询字符串,请编写代码检查它是否有会话值,并改用该值

e、 g


数据是回发到同一页,还是要转到另一页?同一页。。。我正在使用一个带有面板的页面来显示/隐藏所需的部分(GridView、表单等)。数据不是“真正”敏感的。。。ClientID只是DB提供的一个id。这有点像社会保险号码(SIN)。非常感谢。谢谢你的观点,史蒂夫。我还没有想到“刷新”的噩梦;)正如我对BritishDeveloper所说的,数据不敏感,所以这不是什么大问题。我主要是想确定我是以正确的方式做这件事的。非常感谢。
    Dim iClientID As Integer

    If IsNumeric(Request.QueryString("ClientID")) Then
        iClientID = CInt(Request.QueryString("ClientID"))
        Session("ClientID") = iClientID
    ElseIf IsNumeric(Session("ClientID")) Then
        iClientID = CInt(Session("ClientID"))
    End If