从两个不同的ASPX页面调用ASPX

时间:2012-12-14 09:54:32

标签: asp.net vb.net

我有三个ASPX页面。从另外两个页面调用的ASPX页面是一个可以上传文件的页面。

我用其他两个页面用JavaScript调用上传页面:

 function UploadFax_Click() {
             var grid = ISGetObject("WebGrid1");
             var curSelObj = grid.GetSelectedObject(); // get selected object
             var row = curSelObj.GetRowObject(); // get the WebGridRow object
             if (row.Type == "Record") {
                 var s_id = row.KeyValue
            }
            window.location = '../Admin/UploadFax.aspx?suppid=' + s_id;
         }

然后在Upload-Page上获取QueryString:

 If Not IsPostBack And Len(Request.QueryString("suppid")) > 0 Then
        If Not Request.QueryString("suppid") Is Nothing Then
            Session("suppid") = Request.QueryString("suppid")
        End If
    End If

我需要的是,如果我从两个页面之一调用上传页面,则应限制上载页面的功能。 例如:如果我调用Upload-Page,则Checkbox.Disabled = true,并从其他页面启用Checkbox。

我的想法是从该页面发送第二个参数,然后使用Request.QueryString获取参数,然后使用if / else启用oder禁用该复选框。

问题是,还有另一种更好的可能性来做我想要的吗?如果是的话我该怎么做?

2 个答案:

答案 0 :(得分:1)

您可以查看Request.UrlReferrer并从中跳舞:

Dim restrictedAccess As Boolean = Not IsNothing(Request.UrlReferrer) AndAlso
        Request.UrlReferrer.AbsolutePath.IndexOf("/Original.aspx", StringComparison.InvariantCultureIgnoreCase) >= 0

Checkbox.Disabled = Not restrictedAccess

答案 1 :(得分:1)

使用QueryString可能会导致安全违规,为什么不使用Session参数,

当你从第一页调用它然后设置

Session("IsCalled")="1"

在第二页加载检查

IF Not Session("IsCalled") Is Nothing AndAlso Session("IsCalled")="1" Then
   CheckBox1.Enabled=False
End If

和Vise Versa在第一页加载。