2

変数を開始して宣言しました

protected string Image1;
protected void Page_Load(object sender, EventArgs e)
{
    if (!Page.IsPostBack)
    {
        string Image1 = Request.QueryString["ImageAlt1"];
    }
}

jqueryから変数を適切に呼び出しましたが、リンクをテストしても何も得られません

 $("#fancybox-manual-c").click(function () {
            $.fancybox.open([
                {
                    href: '<%=Image1%>',/*returns '' instead of 'path/image.jpg'*/
                    title: 'My title'
                }
            ], {
                helpers: {
                    thumbs: {
                        width: 75,
                        height: 50
                    }
                }
            });

<%=Image1%>属性からすべての値を削除hrefすると同じエラーが発生したため、javascript 内に配置した が null を返していることがわかりました。

href:'' /*causes the jquery not to fire when the link is clicked*/

Request.QueryString最後に、が null を返すかどうかをテストしたので、 の値をimage1ラベルに配置しました

lblImage1.Text = Image1; //returns 'path/image.jpg'

そして、ラベルに投稿された画像へのパス。jQueryで同じ変数が空白なのはなぜですか? 私は何が欠けていますか?

4

2 に答える 2

9

if条件のみのスコープで作成されたローカル変数に値を設定するためです。

行を次のように変更すると、機能します。

Image1 = Request.QueryString["ImageAlt1"];
于 2013-07-03T13:33:51.330 に答える
2

「Image1」という名前の 2 つの変数があります。それらの1つは(あなたが書いたコードによると)何にも設定されません(そしてそれは印刷されたものです)。

protected string Image1;
protected void Page_Load(object sender, EventArgs e)
{
    if (!Page.IsPostBack)
    {
        string Image1 = Request.QueryString["ImageAlt1"]; // introduces a new variable named Image1
        // this.Image1 and Image1 are not the same variables
    }
    // local instance of Image1 is no more. (out of scope)
}

代わりにこれを試してください

protected string Image1;
protected void Page_Load(object sender, EventArgs e)
{
    if (!Page.IsPostBack)
    {
        Image1 = Request.QueryString["ImageAlt1"];
    }
}

の欠如に注意してくださいstring。変数の型を先頭に追加することで、その変数の新しいローカル インスタンスをそのスコープ内に作成します。

于 2013-07-03T13:35:20.177 に答える