2012-12-14 50 views
0

我有三个ASPX页面。从另外两个页面调用的ASPX页面是一个可以上传文件的页面。从两个不同的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; 
     } 

然后在上传页我得到的查询字符串:

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 

我需要的是,如果我从两个页面中的一个调用上传页面,上传页面的功能应该受到限制。 例如:如果我调用上传页面,然后Checkbox.Disabled = true,并从其他页面复选框应启用。

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

问题是,有没有更好的可能性做到这一点,我想要的?如果是,我该怎么做?

回答

1

使用QueryString可能导致安全冲突,为什么你不使用Session参数,

,当你从第一页说它然后设置

Session("IsCalled")="1" 
在第二个页面加载检查

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

和Vise Versa在第一页加载。

+0

我设置了Session(“IsCalled”)= Request.Querystring( “IsCalled”),因为我需要那个Id,我发送作为参数。那是行得通吗?所以我必须检查if语句....... AndAlso Session(“Iscalled”)> 0 Then ...或者那是错的? – Paks

+0

在你的问题中,你的想法是从该页面发送第二个参数,因此'Session(“IsCalled”)'是指示最近调用哪个页面,而不是存储ID,但是你也可以使用另一个'Session'参数通过一个ID – Alaa

+0

我的错-.-,明白了 – Paks

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 
+0

我从来没有使用过Request.Url.Referrer。如何使用它? – Paks

+0

@Paks你使用过'Request.Url'吗?它具有相同的对象类型('System.Uri'),提供有关引用者URI的信息。 MSDN:http://msdn.microsoft.com/en-us/library/system.web.httprequest.urlreferrer.aspx – volpav

+0

好的,我会检查链接,谢谢 – Paks