嗨我无法使嵌入式js文件正常工作。WebResources无法找到的原因
我已经尝试了所有的以下内容:
- 运行卡西尼开发服务器(VS2008,.NET 3.5)
- 新增[装配:WebResource( “MyNamespace.MyScriptFile.js”,“文/ javascript“)]在类的名称空间声明之上。
- 脚本文件具有构建操作“Embedded Resource”。
- 在OnInit,OnLoad和OnPreRender中尝试注册
- 脚本文件与注册它的控件在同一个程序集和命名空间中。
- 用Reflector打开程序集并验证资源的名称是否正确。
不使用任何下列方法工作:
ScriptManager.RegisterClientScriptResource(Page, GetType(), "MyNamespace.MyScriptFile.js"); Page.ClientScript.RegisterClientScriptResource(GetType(), "MyNamespace.MyScriptFile.js"); Page.ClientScript.RegisterClientScriptInclude(GetType(), "key", Page.ClientScript.GetWebResourceUrl(GetType(), "MyNamespace.MyScriptFile.js"));
- 其他WebResource.axd的文件被发现 - 只有这一个不被人发现。
对资源的请求返回一个404页面中列出的除外:"*[HttpException]: This is an invalid webresource request.*"
使用ScriptManager.RegisterClientScriptResource产生异常:
"*Web resource 'MyNamespace.MyScriptFile.js' was not found.*"
这可能会起作用,但使用嵌入式资源的目的之一是您可以将JavaScript文件打包到程序集中,然后将这些程序发送到不同的项目。然后可以通过需要它们的控件动态添加资源。如果我必须制作自己的ScriptManager,那么使用嵌入式资源的目的就会失败。 – cbp 2009-11-03 00:43:30
我不同意这种评估。拥有自己的脚本管理器可以抽象出对“魔术串”的需求。如果你不得不多次写它,“MyNamespace.MyScriptFile.js”将是一个神奇的字符串。如果我是你,我会使用这种方法,只是因为它允许重用,它确实满足你的目的,不是吗? – zowens 2009-11-03 01:32:36
我试过你的解决方案,它工作 - 谢谢!我使用了ScriptManagerProxy,以便可以正确打包和分发嵌入式资源。 – cbp 2009-11-04 06:08:53