我已经构建了一个自定义控件,并希望为其添加一个嵌入式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发生冲突?
答案 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