4

你好,我正在尝试从 url 获取 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

4 回答 4

3

那是一个字段初始化器
字段初始化程序在构造函数之前运行,并且无法访问它们正在初始化的实例。
因此,您不能在Request那里使用该物业。

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

于 2012-05-22T14:31:16.600 回答
1

你访问的Request太早了。

myId如果您设置on或任何其他类似的页面事件Init,它将起作用。Page_Load

于 2012-05-22T14:30:13.920 回答
0

尝试在您的 PageLoad 中设置 _myId。

于 2012-05-22T14:30:13.213 回答
-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>

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

于 2013-03-29T14:18:54.227 回答