表单上传在asp.net中获取其他表单变量

时间:2013-08-19 17:16:18

标签: asp.net vb.net file-upload

我有一个从MSDN复制的asp.net表单上传框。 提交表单后,我希望页面重定向2个查询参数,文件名和隐藏表单字段的数字,在同一表单和上传框中。 在表单提交添加到重定向代码后,如何获取该数字。 我的表单字段名称是'id'

<script runat="server">
Protected Sub Button1_Click(ByVal sender As Object, _
  ByVal e As System.EventArgs)

    If FileUpload1.HasFile Then
        Try
            FileUpload1.SaveAs("C:\inetpub\sites\rebbetzin\uploads\" & _
               FileUpload1.FileName)
            Label1.Text = "File name: " & _
               FileUpload1.PostedFile.FileName & "<br>" & _
               "File Size: " & _
               FileUpload1.PostedFile.ContentLength & " kb<br>" & _
               "Content type: " & _
               FileUpload1.PostedFile.ContentType

                Response.Redirect("http://www.rebbetzins.org/thanks.asp?id=" &  ______ & "&f=" & FileUpload1.PostedFile.FileName )
        Catch ex As Exception
            Label1.Text = "ERROR: " & ex.Message.ToString()
        End Try
    Else
        Label1.Text = "You have not specified a file."
    End If
End Sub

2 个答案:

答案 0 :(得分:0)

request.form(“id”)应该包含该隐藏表单字段中的值。

答案 1 :(得分:0)

该值存储在Request.Form集合中,如下所示:

Request.Form("id")

因此,您的Response.Redirect代码应如下所示:

Response.Redirect("http://www.rebbetzins.org/thanks.aspx?id=" & Request.Form("id") & "&f=" & FileUpload1.PostedFile.FileName )

注意:thanks页面是.aspx,而不是.asp扩展名,对吗?我在答案中将其更改为.aspx

更新:

由于您有一个ASP.NET服务器控件保存隐藏值,因此您可以这样做:

Me.id2.Value

所以你的Response.Redirect现在看起来像这样:

Response.Redirect("http://www.rebbetzins.org/thanks.aspx?id=" & Me.id2.Value & "&f=" & FileUpload1.PostedFile.FileName )

更新2:

要填充thanks.aspx页面中的ASP.NET HiddenField控件,您需要在Page_Load事件中的查询字符串中读取它,如下所示:

Protected Sub Page_Load(sender As Object, e As EventArgs)
    If Request.QueryString("id") IsNot Nothing Then
        Me.id2.Value = Request.QueryString("id")
    End If
End Sub