4

こんにちはiamはURLからIDを取得し、それをクリント側に送信しようとしていますこれは私がしたことです

これは私のURLです:

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した場合に機能します。InitPage_Load

于 2012-05-22T14:30:13.920 に答える
0

PageLoadで_myIdを設定してみてください。

于 2012-05-22T14:30:13.213 に答える
-1

そのため、クエリ文字列から設定されたプロパティを持つクラスが必要で、このスレッドが見つかりました。また、フロントページのプロパティやJavaScriptのプロパティにも1か所からアクセスできるようにしたかったのです。これが私が思いついたものです:

// 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 に答える