这里我使用Asp.Net Ajax SlideShowExtender Control来创建存储在数据库中的图像的幻灯片放映。此控件使用GetSlides()webservice来检索数据库信息。现在我想将一个查询字符串传递给GetSlides()webservice,以便图像像querystring中的值一样旋转。我的困难是如何将查询字符串传递给这个特定的web服务,我尝试使用“HttpContext.Current.Request.QueryString [”id“]”但这不起作用,为什么?有人可以建议如何将查询字符串传递给这个Web服务。
答案 0 :(得分:3)
您应该使用SlideShowExtender的 ContextKey 功能(请参阅its documentation)。
如果你的扩展器被宣布为样本:
<ajaxToolkit:SlideShowExtender ID="SlideShowExtender1" runat="server"
TargetControlID="Image1"
SlideShowServiceMethod="GetSlides"
AutoPlay="true"
ImageTitleLabelID="imageTitle"
ImageDescriptionLabelID="imageDescription"
NextButtonID="nextButton"
PlayButtonText="Play"
StopButtonText="Stop"
PreviousButtonID="prevButton"
PlayButtonID="playButton"
Loop="true" />
您的GetSlides服务方法是使用 contextKey 参数声明的(小心,区分大小写),如下所示:
[System.Web.Services.WebMethod]
[System.Web.Script.Services.ScriptMethod]
public AjaxControlToolkit.Slide[] GetSlides(string contextKey)
{
// Do something with contextKey here and return the slides.
}
然后你可以在SecondPage.aspx的Page_Load中使用这样的代码将QueryString值传递给service方法。
protected void Page_Load(object sender, EventArgs e)
{
SlideShowExtender1.ContextKey = Request.QueryString["id"];
}
答案 1 :(得分:2)
要传递查询字符串,您可以执行类似这样的操作
http://yourpath/service.asmx?imageid=3
要从您的网络服务访问查询字符串,您可以执行此操作
this.Context.Request.QueryString["imageid"];
答案 2 :(得分:0)