请求变量中的查询字符串

时间:2012-05-22 14:27:01

标签: asp.net .net vb.net

你好iam试图从网址获取id并将其发送到clint端这就是我所做的

这是我的网址:

http://localhost:53010/edit.aspx?Id=4

背后的代码

    Public Partial Class Edit
Inherits System.Web.UI.Page

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) 
Handles Me.Load

End Sub
Private _myId As String = Request.QueryString("id")

Public Property myId() As String
    Get
        Return _myId
    End Get
    Set(ByVal value As String)
        _myId = value
    End Set
End Property

结束课程 客户

<%= myId%>

错误

Request is not available in this context

当我将私人道具移至page_load()时,这也是我得到的    “私人”对本地变量声明无效 - 任何想法发生了什么

谢谢


我在这里解决这个问题就是答案

Public Partial Class Edit
Inherits System.Web.UI.Page

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) 
Handles Me.Load
    MyIdVal = Request.QueryString("id")


End Sub

Private _myIdVal As String
Public Property MyIdVal() As String
    Get
        Return _myIdVal
    End Get
    Set(ByVal value As String)
        _myIdVal = value
    End Set
End Property

结束班

4 个答案:

答案 0 :(得分:3)

这是字段初始化程序 字段初始值设定项在构造函数之前运行,无法访问它们正在初始化的实例 因此,您无法在那里使用Request属性。

您需要将其移至构造函数或Page_Load

答案 1 :(得分:1)

您过早访问Request

如果您在myIdInit或任何其他类似的网页活动中设置Page_Load,则会有效。

答案 2 :(得分:0)

尝试在PageLoad中设置_myId。

答案 3 :(得分:-1)

所以我想要一个具有从查询字符串设置的属性并找到此线程的类。我还希望能够访问首页上的属性,甚至可以从一个位置访问JavaScript。以下是我提出的建议:

// App_Code/QueryStrings.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

/// <summary>
/// Summary description for QueryStrings
/// </summary>
public class QS
{
    private int id = -1;

    public QS()
    {
        if (HttpContext.Current.Request.QueryString["id"] != null)
            try
            {
                Int32.TryParse(HttpContext.Current.Request.QueryString["id"], out id);
            }
            catch
            {
                id = -2;
            }
        else
            id = -3;
    }

    public int ID
    {
    get
        {
            return id;
        }
    }
}

然后您可以从.aspx页面调用它,如下所示:

<body>
    <form id="form1" runat="server">
    <div>
        <% QS qs = new QS(); %>
        ID = <%= qs.ID %>
    </div>
    </form>
</body>

当然,您可以使用相同的语法从代码调用。