在c#aspx项目中。 我可以在客户端访问静态方法,在页面的开头部分导入我的命名空间,如下所示。
<%@ Import Namespace="utl=portal.library.Utilities" %>
而且可以在同一个asxp页面的客户端使用它,比如。
<script type="text/javascript">
var categoryPage;
categoryPage = '<%= utl.getcategoryName().ToString() %>';
</script>
我的问题是,我可以使用'&lt;%= utl.getcategoryName()。ToString()%&gt;'在外部JavaScript文件中?
有可能是这样吗?
<%@ Import Namespace="utl=portal.library.Utilities" %>
<script src="/scripts/trial.js" type="text/javascript"></script>
并在trial.js文件中
var categoryPage;
categoryPage = '<%= utl.getcategoryName().ToString() %>';
提前感谢..
答案 0 :(得分:1)
我不这么认为,因为外部.JS文件不会被ASP.NET处理,因此无法访问这些类型的变量。
答案 1 :(得分:0)
我认为你不能,但你可以尝试将服务器端变量作为参数传递给外部JS文件中的JS函数。
答案 2 :(得分:0)
您可以创建仅输出Javascript而不是HTML的.aspx文件。只要您在后面的代码中将内容类型设置为application/x-javascript
,它就会起作用。
例如,创建Test.js.aspx。然后,在Test.js.aspx.cs背后的代码中:
protected void Page_Load( object sender, EventArgs e )
{
Response.ContentType = "application/x-javascript";
}
protected string GetMessage()
{
return "Hello, World!";
}
在Test.js.aspx文件中:
window.onload = function() {
var msg = <%=GetMessage() %>
alert(msg);
}
现在,客户端上运行的Javascript无法调用服务器上运行的C#函数。你需要AJAX。但是你当然可以使用这种模式来生成在生成时使用ASP.NET的Javascript。