gpt4 book ai didi

c# - 为什么使用 ajaxtoolkit 时图像不显示 :slideshowextender?

转载 作者:行者123 更新时间:2023-11-30 22:53:48 29 4
gpt4 key购买 nike

我正在尝试根据在线提供的演示代码实现“ajaxToolkit:SlideShowExtender”属性,还尝试了 GitHub 中的代码,如以下答案之一所示。

我尝试过的事情:

  • 我查看了我网站的 Web.config 文件,以确保“ajaxToolkit”的“控件”存在并且确实存在。
  • 我已经通过 NuGet 管理器安装了“AJAX Control Toolkit V18.1”,因此我相信 dll 已正确安装。
  • 我检查了图片路径,没问题。
  • ScriptManager 可能缺少或有问题,它是在我的“Site.master”页面上配置的,我无法将它添加到 aspx 页面,因为它只能包含一个 ScriptManager。
  • 我也无法添加标签“ajaxToolkit:ToolkitScriptManager”,因为它无法识别。它说它不是已知元素。
  • 我还尝试将 GetSlides() 方法移动到 Site.master.cs 文件,但没有成功。
  • 我清除了我的浏览器数据(历史记录、下载、cookie、缓存的图像和文件)

来 self 的Test.aspx 文件:

<%@ Page Title="Test" Language="C#" MasterPageFile="~/Site.master" AutoEventWireup="true" CodeFile="Test.aspx.cs" Inherits="Test" %>

<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="ajaxToolkit"%>

<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" Runat="Server">

<table style="align-content:center; width:500px; height:250px;">
<tr style="align-content:center;">
<td>
<asp:Label ID="Label1" runat="server" ForeColor="#000000" />
</td>
</tr>
<tr style="align-content:center;">
<td>
<asp:Image runat="server" ID="Image1" Height="250" Width="400" />
</td>
</tr>
<tr style="text-align:center;">
<td>
<asp:ImageButton ID="ImgBtnPrevious" runat="server" ImageUrl="~/images/Buttons/back.png"/>
</td>
<td>
<asp:Button ID="BtnPlayStop" runat="server" BackColor="Black" ForeColor="White"/>
</td>
<td>
<asp:ImageButton ID="ImgBtnNext" runat="server" ImageUrl="~/images/Buttons/forward.png"/>
</td>
</tr>
</table>


<ajaxToolkit:SlideShowExtender ID="SlideShowExtender1" runat="server"
AutoPlay="true" ImageTitleLabelID="Label1" PlayInterval="2000" Loop="true" PlayButtonID="BtnPlayStop"
PlayButtonText="Play" StopButtonText="Stop" PreviousButtonID="ImgBtnPrevious" NextButtonID="ImgBtnNext"
SlideShowAnimationType="SlideRight" TargetControlID="Image1" SlideShowServiceMethod="GetSlides" />

</asp:Content>


(我的图像按钮显示正常)

我的代码隐藏(Test.aspx.cs 文件):

如您所见,我尝试了三种不同的图像显示方式。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using AjaxControlToolkit;
using System.IO;

public partial class Test : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{

}

[System.Web.Services.WebMethod]
[System.Web.Script.Services.ScriptMethod]
public AjaxControlToolkit.Slide[] GetSlides()
{
/*
List<Slide> slides = new List<Slide>();
string myimgdir = HttpContext.Current.Server.MapPath("~/images/Test/");

DirectoryInfo dir = new DirectoryInfo(myimgdir);
var myslides = from displayimg in dir.GetFiles()
select new Slide
{
Name = displayimg.Name,
ImagePath = "~/images/Test/" + displayimg.Name
};
return myslides.ToArray();*/

/*
string[] imagenames = System.IO.Directory.GetFiles(Server.MapPath("~/images/Test/"));
AjaxControlToolkit.Slide[] photos = new AjaxControlToolkit.Slide[imagenames.Length];
for (int i = 0; i < imagenames.Length; i++)
{
string[] file = imagenames[i].Split('\\');
photos[i] = new AjaxControlToolkit.Slide("Images/" + file[file.Length - 1], file[file.Length - 1], "");
}
return photos;
*/

AjaxControlToolkit.Slide[] slides = new AjaxControlToolkit.Slide[4];
slides[0] = new AjaxControlToolkit.Slide("~/images/Test/ME1.png", "First image of my album", "First Image");
slides[1] = new AjaxControlToolkit.Slide("~/images/Test/ME2.png", "Second image of my album", "Second Image");
slides[2] = new AjaxControlToolkit.Slide("~/images/Test/ME3.png", "Third image of my album", "Third Image");
slides[3] = new AjaxControlToolkit.Slide("~/images/Test/ME4.png", "Fourth image of my album", "Fourth Image");
return (slides);

}
}

我的 Web.config(因为它还包含与 Ajax 控件相关的代码):

<?xml version="1.0" encoding="utf-8"?>

<configuration>
<configSections>
<section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
<section name="ajaxControlToolkit" type="AjaxControlToolkit.AjaxControlToolkitConfigSection, AjaxControlToolkit" requirePermission="false" />
</configSections>
<ajaxControlToolkit useStaticResources="true" renderStyleLinks="false" htmlSanitizer="AjaxControlToolkit.HtmlEditor.Sanitizer.DefaultHtmlSanitizer, AjaxControlToolkit.HtmlEditor.Sanitizer" tempFolder="~/Temp" />
<location path="Temp">
<system.webServer>
<handlers>
<clear />
</handlers>
<modules>
<clear />
</modules>
</system.webServer>
</location>

<system.web>
<authentication mode="None" />
<compilation debug="true" targetFramework="4.5.2">
<assemblies>
<add assembly="System.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A" />
<add assembly="System.Web.Extensions.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
</assemblies>
</compilation>
<httpRuntime targetFramework="4.5.1" />
<pages controlRenderingCompatibilityVersion="3.5" clientIDMode="AutoID">
<namespaces>
<add namespace="System.Web.Optimization" />
<add namespace="Microsoft.AspNet.Identity" />
</namespaces>
<controls>
<add assembly="AjaxControlToolkit" namespace="AjaxControlToolkit" tagPrefix="ajaxToolkit" />
<add namespace="InfoBlock" tagPrefix="samples" />
<add assembly="Microsoft.AspNet.Web.Optimization.WebForms" namespace="Microsoft.AspNet.Web.Optimization.WebForms" tagPrefix="webopt" />
</controls>
</pages>
<membership>
<providers>
<clear />
</providers>
</membership>
<profile>
<providers>
<clear />
</providers>
</profile>
<roleManager>
<providers>
<clear />
</providers>
</roleManager>

<sessionState mode="InProc" customProvider="DefaultSessionProvider">
<providers>
<add name="DefaultSessionProvider" type="System.Web.Providers.DefaultSessionStateProvider, System.Web.Providers, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" connectionStringName="DefaultConnection" />
</providers>
</sessionState>
<customErrors mode="Off" />
<trust level="Full" />
</system.web>
<system.webServer>
<handlers>
<add name="AjaxFileUploadHandler" verb="*" path="AjaxFileUploadHandler.axd" type="AjaxControlToolkit.AjaxFileUploadHandler, AjaxControlToolkit" />
</handlers>
<rewrite>
<rules>
<rule name="HTTP to HTTPS redirect" stopProcessing="true">
<match url="(.*)" />
<conditions>
<add input="{HTTPS}" pattern="off" ignoreCase="true" />
</conditions>
<action type="Redirect" redirectType="Permanent" url="https://{HTTP_HOST}/{R:1}" />
</rule>
</rules>
</rewrite>
<modules>
<remove name="FormsAuthentication" />
</modules>
</system.webServer>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="Newtonsoft.Json" culture="neutral" publicKeyToken="30ad4fe6b2a6aeed" />
<bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="WebGrease" culture="neutral" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="0.0.0.0-1.5.2.14234" newVersion="1.5.2.14234" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="EntityFramework" publicKeyToken="b77a5c561934e089" />
<bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Microsoft.Owin" culture="neutral" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="0.0.0.0-3.0.1.0" newVersion="3.0.1.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Microsoft.Owin.Security.OAuth" culture="neutral" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="0.0.0.0-3.0.1.0" newVersion="3.0.1.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Microsoft.Owin.Security.Cookies" culture="neutral" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="0.0.0.0-3.0.1.0" newVersion="3.0.1.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Microsoft.Owin.Security" culture="neutral" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="0.0.0.0-3.0.1.0" newVersion="3.0.1.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="AjaxControlToolkit" publicKeyToken="28f01b0e84b6d53e" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-18.1.1.0" newVersion="18.1.1.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
<system.codedom>
</system.codedom>
</configuration>

输出如下所示:
SlideShowExtender can't find images

尝试通过 F12 > 网络进行调试时,我看到以下内容(我不明白): SlideShowExtender-undefined-network-debugging

附言。我在本地主机上运行它。

PPS。我正在运行 Visual Studio 2017 版本 15.2 (26430.16) 和 Microsoft .NET Framework 版本 4.7.03056。 (目标框架.NET = 4.5.2)

我非常希望看到在网页上的 slider 中显示的图像。感谢所有帮助!

更新:

在尝试使用浏览器中内置的网络调试器时,我注意到以下内容(下面的屏幕截图)。似乎我的某些图像子文件夹(如“测试”)丢失了。这可以解释为什么找不到我的图像。知道这可能是什么原因吗? Network debugger images subfolders missings

奇怪的是调试器显示slideShowServicePath虽然我的 .aspx 文件中没有配置它。

更新 2:

当浏览到 https://localhost:44367/images/Test/ 我收到错误:

HTTP Error 403.14 - Forbidden The Web server is configured to not list the contents of this directory.

添加后<directoryBrowse enabled="true" />到 Web.config 我可以通过浏览器看到文件夹和其中的图像(图像链接,而不是实际图片)。然后我可以单击并查看图像。

但我仍然看不到 Ajax SlideShowExtender 中的图像。

最佳答案

您要查找的代码适用于 Vs 2005 和 .net 2.0。最新的工作代码在这里。问:ScriptManager 可能缺少或有问题,它是在我的“Site.master”页面上配置的,我无法将它添加到 aspx 页面,因为它只能包含一个 ScriptManager。**

A. You have to upgrade project to .net 4.0 and then change web.config also.

**

https://github.com/DevExpress/AjaxControlToolkit/tree/master/AjaxControlToolkit.SampleSite/SlideShow

<?xml version="1.0"?>
<!--
For more information on how to configure your ASP.NET application, please visit
http://go.microsoft.com/fwlink/?LinkId=169433
-->
<configuration>
<configSections>
<section name="ajaxControlToolkit" type="AjaxControlToolkit.AjaxControlToolkitConfigSection, AjaxControlToolkit" requirePermission="false"/>
</configSections>
<ajaxControlToolkit useStaticResources="true" renderStyleLinks="false" htmlSanitizer="AjaxControlToolkit.HtmlEditor.Sanitizer.DefaultHtmlSanitizer, AjaxControlToolkit.HtmlEditor.Sanitizer" tempFolder="~/Temp"/>
<location path="Temp">
<system.webServer>
<handlers>
<clear/>
</handlers>
<modules>
<clear/>
</modules>
</system.webServer>
</location>
<!--
For a description of web.config changes see http://go.microsoft.com/fwlink/?LinkId=235367.

The following attributes can be set on the <httpRuntime> tag.
<system.Web>
<httpRuntime targetFramework="4.7" />
</system.Web>
-->
<system.web>
<compilation debug="true" targetFramework="4.7"/>
<machineKey validation="SHA1" decryptionKey="7EE421F6987EAFF4998E0F2ED5544AF1B931C82A1602BC2E" validationKey="5278D83EDD8E36C27E019D3E975D62A3FDF0E8EF50DB69F659D03EB18A4459D2B3271AA075173012EF122E2B7BFA49CDE16CC0DCC68F3E862E1EEE491D300DC9"/>
<siteMap>
<providers>
<add name="SamplesSiteMap" type="System.Web.XmlSiteMapProvider" siteMapFile="~/Samples.sitemap"/>
</providers>
</siteMap>
<pages controlRenderingCompatibilityVersion="3.5" clientIDMode="AutoID">
<controls>
<add assembly="AjaxControlToolkit" namespace="AjaxControlToolkit" tagPrefix="ajaxToolkit"/>
<add namespace="InfoBlock" tagPrefix="samples"/>
</controls>
</pages>
<trust level="Medium"/>
</system.web>
<system.webServer>
<handlers>
<add name="AjaxFileUploadHandler" verb="*" path="AjaxFileUploadHandler.axd" type="AjaxControlToolkit.AjaxFileUploadHandler, AjaxControlToolkit"/>
</handlers>
</system.webServer>
<runtime>

</runtime>
</configuration>

关于c# - 为什么使用 ajaxtoolkit 时图像不显示 :slideshowextender?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56841299/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com