2012-04-26 18 views
3

是否有可能用某些c#变量创建一个JavaScript文件?类似这样的:在javasciprt文件中访问c#变量.js

var foo = <%= CODE_VALUE.foo %>; 

或者我必须在usercontrol.ascx中创建它们,我将其包含在该部分中?

谢谢

+0

如果你尝试了,你会发现,这确实是可能的。 – 2012-04-26 10:41:25

+1

@GrahamClark好的,事实并非如此。无论如何,不​​要在.js文件中,除非您重新配置IIS以使用ASP.NET处理.js文件。这将是一个可怕的想法。 – 2012-04-26 10:43:12

+0

@Shedal,道歉啊,我没有看到“javascript文件”位。没关系! – 2012-04-26 10:44:46

回答

9

您不能在.js文件中包含此代码,因为它不是由asp.net编译的,因此不会将CODE_VALUE.foo转换为代码。

你可以做的是在加载你使用的这个.js文件之前放置这个变量,并将它们设置在任何aspx或用户控件上。

例如

<script> 
var foo = <%= CODE_VALUE.foo %>; 
<script> 
<script type="text/javascript" src="fileToUseTheFoo.js"> 
</script> 

替代你可以创建一个处理程序读取JavaScript文件,包括自定义变量,并创建一个完整的javascript代码,只要你喜欢,并把它作为一个JavaScript的。

一些相对:How to get asp.net client id at external javascript file

+0

我喜欢这个!为什么我从来没有想过这样做!? – 2012-04-26 13:04:52

+0

@SimoN我删除了没有声音的有线... :)我的意思是说这个想法并不是那么重要,因为你很年轻,你有时间去发现它们。重要的是要开放的心态,并与你的生活快乐:) – Aristos 2012-04-26 13:26:54

+0

没问题,我不是那种会因为你说我年轻而生气的人;)我是,但我仍然有5网页年后,所以我认为它不是很差:) – 2012-04-26 13:28:33

0

不,您不能在.js文件中使用服务器端标记。 而是在需要它们的页面/控件上创建变量。

0

Javascript文件是静态文件,并且静态地由Web服务器提供服务,而不用ASP.NET处理它们。

所以如果你真的想要插入这个值,你可以创建一个空的.aspx页面并在其中包含所有的javascript,然后在script src中包含.aspx页面。

但我可能更愿意有一个Web服务,而不是每次需要接收该值时使用的JavaScript方法。