我已经启动了变量并声明了它们
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
}
}
});
我发现我放在javascript中的<%=Image1%>
返回null,因为当我从href
属性中删除所有值时,我得到了同样的错误。
href:'' /*causes the jquery not to fire when the link is clicked*/
最后,我测试了Request.QueryString
是否返回null,因此我将image1
的值放在标签中
lblImage1.Text = Image1; //returns 'path/image.jpg'
图片的路径贴在标签上。为什么jQuery中的相同变量是空白的?我错过了什么?
答案 0 :(得分:9)
因为您将值设置为仅在 if 条件范围内创建的局部变量。
将行更改为此行,它将起作用:
Image1 = Request.QueryString["ImageAlt1"];
答案 1 :(得分:2)
您有两个名为“Image1”的变量。其中一个(根据您编写的代码)永远不会被设置为任何东西(而且它是打印的那个)。
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
。通过在类型前面添加变量,可以在该范围内创建该变量的新本地实例。