将javascript导入c#类
本文关键字:导入 javascript | 更新日期: 2023-09-27 18:20:05
我在C#中创建了一个类(Class1.cs),它使用javascript执行一些命令(JavaScript1.js)。我知道,如果我将这个javascript导入WebForm1.ASPX(使用Class1.cs的那个),它就会工作。问题是我希望能够在其他WebForms中使用这个Class1.cs类。要做到这一点,我必须将这个javascript导入到每个WebForm中。有没有办法将它导入到类中?
这里有一个例子:
主页
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="WebApplication1.WebForm1" %>
<%@ Import Namespace="WebApplication1"%>
<script runat="server">
protected void Test(object sender, EventArgs e)
{
Class1 class1 = new Class1();
class1.callSomething();
}
</script>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<script src="JavaScript1.js" type="text/javascript"></script>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:Button ID="Button1" runat="server" OnClick="Test" Text ="ALERT"/>
</div>
</form>
</body>
</html>
类
using System;
namespace WebApplication1
{
public class Class1
{
public void callSomething()
{
// Here I call the javascript.
}
}
}
JAVASCRIPT
function alertTest()
{
alert('worked');
}
在这种情况下,我使用的是:
<script src="JavaScript1.js" type="text/javascript"></script>
但是通过这种方式,我将不得不把它放在每一个网络表单中。我想做的是在类(Class1)中导入。
提前谢谢。
ClientScriptManager.RegisterClientScriptBlock
方法将对您有所帮助。
如果您正在进行自定义控制并希望自动加载.js文件,您可以将其作为资源添加到您的项目中:
public class FancyGridView : GridView
{
protected override void OnPreRender(EventArgs e)
{
base.OnPreRender(e);
this.Page.ClientScript.RegisterClientScriptResource(
typeof(FancyGridView), "FancyCustomControls.Scripts.GridViewScript.js");
}
...
}
GridViewScript.js
需要添加为资源(在其选项''构建操作中设置"嵌入式资源"),并将其添加到AssemblyInfo
:
[assembly: WebResource("FancyCustomControls.Scripts.GridViewScript.js", "text/javascript")]