日期:2014-05-17  浏览次数:20367 次

asp.net 2.0中关于page.clientscript.GetWebResourceUrl方法的疑问
asp.net 2.0 vb.net
最近在使用page.clientscript.GetWebResourceUrl方法用来测试加载网站LOGO,但始终不显示图片,提示未找到资源 /WebResource.axd
在网上找来教程看看,一般说是在一个类库中添加所需资源,并设置该资源的生成操作(build action)是嵌入资源
并在assemblyInfo.vb添加<assembly: webresource("资源的索引","内容类型")>
例如
Demo类库,根名称空间Demo
添加 test.jpg,并设置为嵌入资源
在assemblyInfo.vb中添加<assembly: webresource("Demo.test.jpg","image/jpg")>

如果test.jpg是放在logo文件夹下,则
在assemblyInfo.vb中添加<assembly: webresource("Demo.logo.test.jpg","image/jpg")>


编译后,在网站中引用
Image2.ImageUrl = Page.ClientScript.GetWebResourceUrl(GetType(Demo.Demo), "Demo.test.jpg")

Image2.ImageUrl = Page.ClientScript.GetWebResourceUrl(GetType(Demo.Demo), "Demo.logo.test.jpg")

但在实际使用中发现只有第一个Demo.test.jpg能正常使用,并且,如果在Demo类库中同时添加logo/test.jpg(原来根目录下有test.jpg)时,编译并不能通过
后来将logo/test.jpg改名后logo/test2.jpg
在assemblyInfo.vb中添加<assembly: webresource("Demo.logo.test2.jpg","image/jpg")>
编译引用后并不能找到图片,Reflector发现两个资源为:
Demo.test.jpg和Demo.test2.jpg
并未按文件夹路径进行生成,例如:Demo.log.test2.jpg

如果这样一来,资源文件将不允许同名,哪怕是在不同的文件夹下

请问这是asp.net 2.0中的限制还是我什么地方操作失误




------解决方案--------------------
asp.net 2.0中的限制