1

アップデート:

私のコードビハインドコードでは、このようにパブリック変数とアッシングを持っています

public string Id { get { return Request.QueryString["id"].ToString(); } }` 

そして.aspxページで私はアクセスしようとしています

$(this).attr("EmployeeId", Id);

エラーの取得 名前

'Id' does not exist in the current context

更新を終了する

私は2つのaspxページを持っています:

1) employee.aspx
2) employee_detail.aspx

あるページから別のページに動的 ID を渡す方法

以下のコードはemployee.aspxページにあります

//more code here..
//but to relvant to my question is here...

var submitButton = function()  {             
  //more code here...         
  if(employeeId != ""){   //redirecting here...
    window.location.href = "employee_detail.aspx"; 
 }    
} 

そのため、employee_detail.aspxページにはjquery関数があり、現在、次のようなIDをハードコーディングしています:

<script type="text/javascript"> 

$(document).ready(function () { 

 var id = 'A42345'; //hardcoded.... 

$(this).attr("EmployeeId", id);  

</script>

だから私の質問は、IDを渡しemployee.aspxたり受け取ったりする方法を探しているということですemployee_detail.aspx

私はこれを行うことを考えましたが、セキュリティ上の理由から、URLにIDを公開したくありません:

window.location.href = "mypage.aspx?id = " + id; 
4

6 に答える 6

0

私が過去に楽しんだオプションには、読み込まれるページにフォームを送信することが含まれます。そのフォームには、JavaScriptがページに渡したいJSONデータを含む非表示フィールドがあります。次に、サーバーはJSONデータを探し、それを解析して、そこに含まれる値を使用します。

これはASPのビューステートやセッションにいくぶん似ていますが、ビューステートやセッションをオンにする必要はありません。

于 2012-04-11T21:26:52.987 に答える
0

サーバーコードのwebmethodでajaxを使用できます。Webメソッドでは、HttpContext.Currentを使用してセッションにアクセスできます。

$.ajax({
    type: "POST",
    url: "mypage.aspx/ServerMethodName",    
    data: '{"id":"' + $("#divID").text() + '"}',        
    contentType: "application/json; charset=utf-8",
    dataType: "json",
    success: function (returnValueFromServerMethod) {
        if(returnValueFromServerMethod.d != "")
            //do something great

    }
});

[WebMethod]
public static string ServerMethodName(string id)
{
    HttpContext.Current.Session["ID"] = id;            
}

ページメソッドを有効にするには、page.aspxにを追加する必要があります。

<asp:ScriptManager ID="ScriptManager1" runat="server" EnablePageMethods="true">                    
</asp:ScriptManager>

ページメソッドのものを、よりクリーンなサービス.svcに置き換えることができます。

于 2012-04-11T20:02:50.193 に答える
0

このように手動で渡すのではなく、セッションの実装とユーザー ID のセッション変数への格納を真剣に検討する必要があります。これを読んでください:http://msdn.microsoft.com/en-us/library/ms178581.aspx

ただし、どうしてもという場合は、GET を使用する代わりに jQuery を使用してデータを 2 番目のページに POST し、サーバー (ASP) 側で POST 変数の値を Javascript にエコーすることができます。

于 2012-04-11T19:52:52.113 に答える
0

動的コードを JavaScript のように組み合わせることができます (順序は次のようにする必要があります)。ASP クラシックを使用していることに注意してください。

<% 
Dim ID
ID = Request.QueryString("id") 'Or any other request
%>

<script type="text/javascript"> 
var id = '<%=id%>'//OR any dynamic request
$(this).attr("EmployeeId", id); 
</script>
于 2012-04-11T19:52:58.427 に答える
0

この方法を試してください:

$.ajax({
            type: "POST",
            contentType: "application/json; charset=utf-8",
            url: "employee_detail.aspx",
            dataType: "json",
            data: { id: 1 }, // or the string: 'id=1'
            complete:
            function () {
                window.location = "employee_detail.aspx";
            }

    });

http://api.jquery.com/jQuery.ajax/から

于 2012-04-11T19:54:21.947 に答える
0

単純に変数を渡そうとするのであれば、Cookie がその役目を果たします。明らかに、これはデータを保存する安全な手段ではありませんが、平均的なユーザーには見えないレイヤーを提供します。

https://github.com/carhartl/jquery-cookie

このプラグインは非常に小さくてシンプルです...

最初のページに Cookie を設定するには:

$.cookie('the_cookie', 'the_value');

また

$.cookie('the_cookie', 'the_value', { expires: 7 });

そして、次のページで値を取得するには:

$.cookie('the_cookie'); 
于 2012-04-11T20:52:14.613 に答える