WebResource.axd空白或未找到

时间:2009-04-08 15:12:22

标签: asp.net dll webresource.axd .net-assembly

我正在尝试导出.dll中的控件库,供办公室中的其他开发人员使用。

我原创的解决方案如下:

解决方案1:
  - Mri.Controls(班级图书馆)
  - Mri.FmTool(Web应用程序)

Mri.FmTool引用Mri.Controls。

在Mri.Controls中,我有一些javascript WebResources。 Mri.FmTool似乎很好地阅读了WebResources,当Mri.FmTool网络应用程序运行时,我所有的javascript网络资源都会出现。

所以,现在我正在尝试创建一个简单的解决方案来使用Mri.FmTool

解决方案2:
  - Mri.ConsumerTest(网络应用程序)

我使用了最新的Mri.Controls.dll并将其添加为Mri.ConsumerTest应用程序的参考。来自Mri.Controls的所有控件似乎都在Mri.ConsumerTest中工作。 Intellisense正在工作,它编译,没有问题。

但是,运行它时,大多数WebResource.axd文件都是空的,只是空白。一个WebResource.axd文件不是空白的,只是说“找不到此资源。”

以下是“属性”窗口中javascript文件的属性:
构建行动:“嵌入式资源”
复制到输出目录:“始终复制”

我错过了哪一步?

3 个答案:

答案 0 :(得分:3)

您可能缺少[assembly:WebResource(“YourNameSpace.YourFile.js”,“text / javascript”)]属性。 WebResource.axd需要该属性。您可以查看this KB文章,了解有关此事的其他信息。

答案 1 :(得分:2)

资源是否设置为DLL的一部分?

打开解决方案Mri.Controls&查看您的javascript资源文件的属性 我认为这就是问题所在。

答案 2 :(得分:2)

我注意到我的WebResource CSS文件正确加载,但新解决方案中没有在WebResource中加载Javascript。

因此,我没有使用 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是管理脚本的新方法,它具有更多功能。

/耸肩