我想在其他开发商一个.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资源文件的属性。结果 我认为这是哪里出了问题可能是。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top