Asp.net WebResource.axd为空或未找到

Asp.net WebResource.axd为空或未找到,asp.net,dll,webresource.axd,.net-assembly,Asp.net,Dll,Webresource.axd,.net Assembly,我正在尝试导出.dll中的控件库,供办公室中的其他开发人员使用 我最初创建的解决方案如下所示: 解决方案1: -控件(类库) -Mri.FmTool(Web应用程序) Mri.FmTool引用了Mri.Controls 在Mri.Controls中,我有一些JavaScriptWebResources。Mri.FmTool似乎可以很好地阅读web资源,当Mri.FmTool web应用程序运行时,我的所有javascript web资源都会像它们应该的那样出现 所以,现在我正在尝试创建一个简单的

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

我最初创建的解决方案如下所示:

解决方案1:
-控件(类库)
-Mri.FmTool(Web应用程序)

Mri.FmTool引用了Mri.Controls

在Mri.Controls中,我有一些JavaScriptWebResources。Mri.FmTool似乎可以很好地阅读web资源,当Mri.FmTool web应用程序运行时,我的所有javascript web资源都会像它们应该的那样出现

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

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

我获取了最新的Mri.Controls.dll,并将其添加为对Mri.ConsumerTest应用程序的引用。所有来自Mri的控件。控件似乎在Mri.ConsumerTest内工作。Intellisense正在运行,它可以编译,没有问题

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

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


我缺少什么步骤?

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

打开解决方案控件并查看javascript资源文件的属性。

我认为这就是问题所在。

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

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

因此,我没有使用System.Web.UI.ClientScriptManager来注册Web资源,而是转而使用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");
    }
}
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.ClientScriptManager

修复后的新代码:

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");
    }
}
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方法,它具有更多的功能


/耸肩

MyJavaScript文件在Mri.Controls-Build操作中具有以下属性:嵌入式资源;复制到输出目录:复制alwaysTHanx。这是我的问题。旧的复活项目-由于某种原因,所有资源文件都被重置为内容,而不是嵌入的资源。我的程序集信息中已经有[assembly:WebResource(“Mri.Controls.Resources.Scripts.Core.js”,“text/javascript”)。。我不确定我是否遵循了,你能发布你的意思的一个小代码片段吗?相关部分是一个静态函数:
ScriptManager.RegisterClientScriptResource()
-我花了一段时间才明白。谢谢你问这个问题!我没有同样的问题,但我有一个类似的问题。但他不知道“构建操作:嵌入资源”属性。谢谢