c# - ASP.Net - 如何包含另一个项目中的嵌入式 JavaScript 文件?

标签 c# asp.net javascript include

我有两个项目,一个是控件库,另一个是我的主项目。从控件库中,我当前正在使用用户控件和一些嵌入在控件库中的 css 文件。

我可以通过在用户控件的 PreRender 事件中执行以下操作,在主项目中使用嵌入的 CSS 文件:

  // Register the default CSS resource
  string includeTemplate = "<link rel='stylesheet' text='text/css' href='{0}' />";
  string includeLocation = this.Page.ClientScript.GetWebResourceUrl(this.GetType(), "MyCompany.ControlLibrary.WebNotify.WebNotify.css");
  LiteralControl cssInclude = new LiteralControl(String.Format(includeTemplate, includeLocation));
  ((System.Web.UI.HtmlControls.HtmlHead)Page.Header).Controls.Add(cssInclude);

我认为以类似的方式包含我的所有 javascript 文件是有意义的,因此我包含了嵌入式 javascript 文件,执行以下操作:

  // Register the js
  string includeTemplate = "<script type='text/javascript' src='{0}'></script>";
  string includeLocation = this.Page.ClientScript.GetWebResourceUrl(this.GetType(), "MyCompany.ControlLibrary.Scripts.MyScript.js");
  LiteralControl jsInclude = new LiteralControl(String.Format(includeTemplate, includeLocation));
  ((System.Web.UI.HtmlControls.HtmlHead)Page.Header).Controls.Add(jsInclude);

现在,CSS 一切正常,但是我的 JS 函数在尝试调用它们时会抛出“需要对象”异常。

我的处理方式正确吗?或者是否有更好的方法将另一个程序集中的嵌入式 js 文件包含到另一个项目中?

最佳答案

就个人而言,正如其他人建议的那样,使用一些工具,例如 FireBug对于火狐浏览器,Fiddler ,或 Internet Explorer 的开发人员工具来检查对您的服务器进行了哪些调用,以及它们发回了哪些响应 - 这就是 BigBlondeViking 所指的内容。

我还会检查您是否已在解决方案中将 JS 文件标记为“构建”,而不是默认的“不采取任何操作”。

但是,确实有一种更简洁的方法来添加嵌入式脚本资源,即 ClientScriptManager 的“RegisterClientScriptResource”方法:

// Get a ClientScriptManager reference from the Page class.
ClientScriptManager cs = Page.ClientScript;

// Register the client resource with the page.
cs.RegisterClientScriptResource(rstype, 
     "MyCompany.ControlLibrary.Scripts.MyScript.js");

关于c# - ASP.Net - 如何包含另一个项目中的嵌入式 JavaScript 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1312779/

相关文章:

c# - 在 ASP.NET C# 中添加视频

javascript - 用 React 编写的 Chrome 扩展中的路由

javascript - 无法更改从 localStorage 检索的对象的属性

javascript - Loopback:如何在 loopback-component-storage 中提交 multipart/form-data 上传

c# - 如何从 ASP.NET 事件调用 C# 函数?

c# - XNA:我点击了什么吗?

Asp.net URL 重写

c# - Azure Web 应用程序与 API 通信时出现 HTTP 错误 500 - 如何修复?

c# - NUnit 不会运行我的单元测试;说测试适配器丢失,但我确实安装了它

javascript - 如何将 Jquery/Ajax 与 asp.net MVC 4 结合使用,并使用部分 View 和模型操作