如何在Jquery中正确调用C#变量。';变量名';在当前上下文中不存在
我在codebehind中存储了两个值,作为一个via如何在Jquery中正确调用C#变量。';变量名';在当前上下文中不存在,c#,jquery,sql,webforms,C#,Jquery,Sql,Webforms,我在codebehind中存储了两个值,作为一个via请求。QueryString如下所示: protected void Page_Load(object sender, EventArgs e) { if (!Page.IsPostBack) { lblRow.Text = Request.QueryString["num"]; string Image1 = Request.QueryString["ImageAlt1"];
请求。QueryString
如下所示:
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
lblRow.Text = Request.QueryString["num"];
string Image1 = Request.QueryString["ImageAlt1"];
string Image2 = Request.QueryString["ImageAlt2"];
string Image3 = Request.QueryString["ImageAlt3"];
}
}
然后我尝试在jquery中调用这些值,得到一个在当前上下文中不存在的错误,这是我的jquery
$("#fancybox-manual-c").click(function () {
$.fancybox.open([
{
href: "<%= Image1 %>",
title: 'My title'
}, {
href: '<%= Image2 %>',
title: '2nd title'
}, {
href: '<%= Image3 %>'
}
], {
helpers: {
thumbs: {
width: 75,
height: 50
}
}
});
});
$(“#fancybox-manual-c”)。单击(函数(){
$.fancybox.open([
{
href:“,
标题:“我的标题”
}, {
href:“”,
标题:“第二名”
}, {
href:'
}
], {
助手:{
拇指:{
宽度:75,
身高:50
}
}
});
});
我不确定我做错了什么。我唯一的猜测是,jquery是在提取变量之前被调用的,因为它应该被设置
这是我的formview,我在其中调用我的其余项目:
<asp:FormView ID="FormView1" runat="server" DataSourceID="SqlDataSource3"
DataKeyNames="num">
<ItemTemplate>
<asp:Label ID="ItemType_Label" runat="server" Text='<%# Bind("ItemName") %>' />
<br />
<asp:Label ID="ItemDescription_Label" runat="server" Text='<%# Bind("ItemDescription") %>' />
<br />
<b>Asking Price:</b>
<asp:Label ID="ItemPrice_Label" runat="server" Text='<%# Bind("ItemPrice") %>' />
<br />
<ul>
<li><a id="fancybox-manual-c" href="javascript:;">Open gallery</a></li>
</ul>
</ItemTemplate>
</asp:FormView>
这一切都与范围有关Image1
、Image2
和Image3
是thenPage\u Load
方法中的局部变量。您应该直接在类中而不是在任何方法中声明它们
public class MyApp
{
public string Image1;
public string Image2;
public string Image3;
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
lblRow.Text = Request.QueryString["num"];
Image1 = Request.QueryString["ImageAlt1"];
Image2 = Request.QueryString["ImageAlt2"];
Image3 = Request.QueryString["ImageAlt3"];
}
}
}
您需要像这样在类级别定义这些变量
protected string Image1,Image2,Image3;
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
lblRow.Text = Request.QueryString["num"];
Image1 = Request.QueryString["ImageAlt1"];
Image2 = Request.QueryString["ImageAlt2"];
Image3 = Request.QueryString["ImageAlt3"];
}
}
今年早些时候我遇到了这个问题。试试这个Skulomana
public string Image1,Image2,Image3;
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
lblRow.Text = Request.QueryString["num"];
Image1 = Request.QueryString["ImageAlt1"];
Image2 = Request.QueryString["ImageAlt2"];
Image3 = Request.QueryString["ImageAlt3"];
}
}
例如,publicstringimage1=Request.QueryString[“ImageAlt1”]像这样?