WebResource.axd的空白或找不到
-
06-09-2019 - |
题
我想在其他开发商一个.dll导出的控件库在办公室吃。
在溶液I原始创建看起来像这样:
<强>解决方案1:强>结果 - Mri.Controls(类库)点击 - Mri.FmTool(Web应用程序)
Mri.FmTool引用Mri.Controls。
内部Mri.Controls,我有一些javascript WebResources。 Mri.FmTool似乎读WebResources就好了,我所有的JavaScript网络resouces出现,因为他们应该Mri.FmTool web应用程序运行时。
因此,现在我试图创建一个简单的解决方案,以消耗Mri.FmTool
<强>解决方案2:强>结果 - Mri.ConsumerTest(Web应用程序)
我把最新Mri.Controls.dll并加入它作为Mri.ConsumerTest应用程序的引用。所有的Mri.Controls的控制似乎里面Mri.ConsumerTest奏效。智能感知工作,它编译,没有问题。
但是,在运行时,大多数WebResource.axd的文件是空的,只是空白。一个WebResource.axd的文件不是空白,它只是说“此资源不能被发现。”
下面是属性窗口内的JavaScript文件的属性:结果 生成操作:“嵌入的资源”结果 复制到输出目录:“复制总是”
什么步骤我缺少什么?
解决方案 3
我注意到我的WebResource CSS文件被正确加载,但JavaScript不是在WebResource在新的解决方案加载。
因此,而不是使用的System.Web.UI。的 ClientScriptManager 强> 的用于注册WebResources,我切换到使用的的System.Web.UI。的的ScriptManager 强> 的。现文件出来的 ScriptManager.axd (而不是 WebResource.axd的)。这似乎解决该问题。
<强>旧代码修正之前:强>
public class ScriptManagerExtension : System.Web.UI.ScriptManager
{
protected override void OnInit(EventArgs e)
{
base.OnInit(e);
Page.ClientScript.RegisterClientScriptResource(this, typeof(ScriptManagerExtension), "Mri.Controls.Resources.Scripts.Libraries.jQuery.js");
}
}
上面的代码段使用System.Web.UI.ClientScriptManager
新代码修复后:强>
public class ScriptManagerExtension : System.Web.UI.ScriptManager
{
protected override void OnInit(EventArgs e)
{
base.OnInit(e);
RegisterClientScriptResource(this, typeof(ScriptManagerExtension), "Mri.Controls.Resources.Scripts.Libraries.jQuery.js");
}
}
上面的代码段使用System.Web.UI.ScriptManager
从我的理解,ClientScriptManager在2.0中引入。我相信是的ScriptManager管理具有了更多的功能脚本的新改进的3.5的方式。
/耸肩
其他提示
您可能缺少[组件:WebResource( “YourNameSpace.YourFile.js”, “文本/ JavaScript的”)]属性。 WebResource.axd的需要该属性。您可以查看这了解对此事的其他信息知识库文章。
是资源设定为DLL的一部分?
打开解决方案Mri.Controls&查看的javascript资源文件的属性。结果 我认为这是哪里出了问题可能是。