找不到自定义控件的DNN WebResource.axd

时间:2013-08-16 08:51:38

标签: asp.net custom-controls dotnetnuke webresource.axd

我已经构建了一个自定义控件,并希望为其添加一个嵌入式js文件。我认为我做的一切都正确,控件编译得像预期的那样。

我已将js文件标记为Build Action“Embedded Resource”

简化控制:

[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 ... jQr5YlIXdwqph6fJIVdtyKxWHJnyuIP44D9akltG8kiDFVFdwSND0& T公司= 635122452802549563

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

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

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

是否可能与Telerik.Web.UI.WebResource.axd发生冲突?

1 个答案:

答案 0 :(得分:1)

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

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

“Namespace.Javascript.GoogleMapsLegend.js”

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