0

我已经构建了一个自定义控件,并想向其中添加一个嵌入式 js 文件。我认为我做的一切都是正确的,并且控件按预期编译。

我已将 js 文件标记为构建操作“嵌入式资源”

简化控制:

[assembly: WebResource("GoogleMapsLegend.js", "application/javascript", PerformSubstitution = true)] 
namespace CustomControls
{
    public class GoogleMapsLegend : WebControl
    {
        protected override void OnInit(EventArgs e)
        {
            base.OnInit(e);

            this.Page.ClientScript.RegisterClientScriptInclude(typeof(CustomControls.GoogleMapsLegend), "GoogleMapsLegend", Page.ClientScript.GetWebResourceUrl(typeof(CustomControls.GoogleMapsLegend), "GoogleMapsLegend.js")); 
        }
    }
}

当我在 DotNetNuke 环境中运行控件时,我得到一个 404

加载资源失败:服务器响应状态为 404(未找到) http://testenvironment.dev.nl/WebResource.axd?d=9ubkUMGTBWycKhgQIG5UHmzbPQjp5hcuPdO …jQr5YlIXdwqph6fJIVdtyKxWHJnyuIP44D9akltG8kiDFJnyuIP44D9akltG8kiDFJnyuIP44D9akltG8kiDFVdwSND0&t=635122452802

我需要在 web.config 中添加其他设置吗?

我尝试将以下内容添加到 web.config,但到目前为止还没有运气。

<add verb="*" path="WebResource.axd" validate="true" type="System.Web.Handlers.AssemblyResourceLoader" />

是否可能与 Telerik.Web.UI.WebResource.axd 存在冲突?

4

1 回答 1

1

我不确定,但看起来您用于注册脚本的行可能是错误的。如果我在你有“GoogleMapsLegend.js”的地方是正确的,你需要它之​​前的名称空间/路径

因此,如果文件位于“JavaScript”之类的子目录中,那么我认为应该阅读

“命名空间.Javascript.GoogleMapsLegend.js”

我在这里可能错了,但我过去曾为此使用过这篇文章:http ://weblogs.asp.net/briandukes/archive/2009/06/08/embedding-javascript-and-other-resources-in-a -net-assembly.aspx

于 2013-08-17T04:34:46.657 回答