WebResource 404 Hell - 无法在Web部件中包含JavaScript

时间:2011-10-19 16:16:27

标签: javascript .net assemblies http-status-code-404 webresource

我尝试将WebPart作为资源包含JavaScript文件非常困难。 Web部件类和flexidgrid.js文件都位于项目的根级别。 Web部件在DisplaySearchResults.js中创建:

namespace DisplaySearchResults
{

    public class DisplaySearchResults :  WebPart
    {

        ### Hidden Irrelevant Stuff Here ###


        protected override void CreateChildControls()
        {
            ### Hidden Irrelevant Stuff Here ###


            ### Load JavaScript Code Here ###

            string scriptURL = Page.ClientScript.GetWebResourceUrl(typeof(DisplaySearchResults), "DisplaySearchResults.flexigrid.js");
            ClientScriptManager cs = Page.ClientScript;

            if (!cs.IsClientScriptBlockRegistered(ByeByeIncludeScriptKey))
                cs.RegisterClientScriptInclude(this.GetType(), ByeByeIncludeScriptKey, scriptURL);
        }

            ### Hidden Irrelevant Stuff Here ###


    }


}

DisplaySearchResults的AssemblyInfo.cs如下所示:

[assembly: WebResource("DisplaySearchResults.flexigrid.js", "text/javascript")]

但由于某种原因,WebResource.axd文件仍然是404.

2 个答案:

答案 0 :(得分:0)

确保文件的Build Action在该文件的属性中设置为“Embedded Resource”。

答案 1 :(得分:0)

我已经设置了嵌入式资源 - 事实证明我需要完全限定的程序集名称 - Company.UI.Web.DisplaySearchResults - 我通过右键单击项目的属性菜单获得了该名称。在应用程序选项卡上,有正确的程序集名称。

所以,而不是:

[assembly: WebResource("DisplaySearchResults.flexigrid.js", "text/javascript")]

我应该说:

[assembly: WebResource("Company.UI.Web.DisplaySearchResults.flexigrid.js", "text/javascript")]