从 ASP.NET webcontrol 注入 javascript
Posted
技术标签:
【中文标题】从 ASP.NET webcontrol 注入 javascript【英文标题】:Injecting javascript from ASP.NET webcontrol 【发布时间】:2018-06-09 11:26:05 【问题描述】:我正在制作一个 ASP.NET webforms 应用程序,但在将脚本从 web 控件注入页面时遇到问题。该脚本与控件位于同一文件夹中:
Screenshot1
所以我想:
[ToolboxData("<0:MyWebControl runat=server></0:MyWebControl>")]
[System.Drawing.ToolboxBitmap(typeof(MyWebControl))]
public class MyWebControl : Image
//...
protected override void OnPreRender(EventArgs e)
base.OnPreRender(e);
string scriptStr = "<script src=\"my_script.js\" type=\"text/javascript\">";
ClientScriptManager csm = Page.ClientScript;
csm.RegisterClientScriptBlock(this.Page.GetType(), "MyScriptTag", scriptStr);
//...
当我检查脚本是否成功注入时,Chrome 会告诉我:
Screenshot2
我猜这个问题与script src=\"my_script.js\"
有关,但我尝试更改路径很久没有成功。
期待一些帮助:)
【问题讨论】:
【参考方案1】:您需要 javascript 文件的路径与正在呈现用户控件的页面相关。我假设您的 web 项目中的 index.aspx 正在加载用户控件。将 Scripts 文件夹添加到 Web 项目并将 javascript 文件移动到那里。然后,将src
更改为
src=\"/Scripts/my_script.js\"
【讨论】:
太好了,成功了!但这并不是我的意思。是否可以以某种方式将脚本文件封装在我最初放置的位置?我想在第一个项目中使用它 您需要将脚本设置为嵌入式资源并按照其他步骤正确实施。 msdn.microsoft.com/en-us/library/bb398930.aspx - 这是一个较旧的文档,但应该与您正在尝试做的事情相关。以上是关于从 ASP.NET webcontrol 注入 javascript的主要内容,如果未能解决你的问题,请参考以下文章
获取 ASP.NET System.Web.UI.WebControls.PlaceHolder 的内容
将可重用的 ASP.NET WebControl 连接到加载数据的方法