[英]Asp.net compile js in class library as embedded resource with c# code inside
在我的类库中,我嵌入了一些js和css文件,用于我的asp.net应用程序,就像在这里描述的方法一样。 现在我想在js文件中放入一些c#代码,让它在生成的dll中编译。 它可能吗?
示例:somefile.js
function foo()
{
var a = "<%= SOME_CONSTANT_DECLARED_OUTSIDE %>";
<% ... some conditional code %>
}
Javascript是客户端SIDE,C#是服务器端。
你不能在Javascript中运行C#
ASP.NET不会编译,也不会在* .js文件中查找托管代码(编译代码,如C#代码)。 因此,当您在js文件中放入一些C#代码时,该代码将无法用作C#代码(客户端将尝试将其用作javascript代码)。
但有一种解决方法 - ASP.NET 确实在aspx文件中呈现C#代码。 所以你可以在JS函数中嵌入一些C#代码,只要这个函数位于aspx文件中(在脚本标记内)。
文档告诉你如何添加变量..-
在UpdatePanelAnimation.js中,您有这行代码
BorderAnimation = function(color) {
this._color = color;
}
然后自动设置。
Dim script As String = String.Format( _
CultureInfo.InvariantCulture, _
"Sys.Application.add_load(function(sender, args) {{var {0}_borderAnimation = new BorderAnimation('{1}');var panelElement = document.getElementById('{0}');if (args.get_isPartialLoad()) {{{0}_borderAnimation.animate(panelElement);}}}});", _
updatePanel.ClientID, _
ColorTranslator.ToHtml(BorderColor))
ScriptManager.RegisterStartupScript( _
Me, _
GetType(UpdatePanelAnimationWithClientResource), _
ClientID, _
script, _
True)
因此,格式化的{1}
将替换为服务器端的BorderColor。 您现在可能希望像这样更新JS构造函数
BorderAnimation = function(color,otherValue){this._color = color; this._otherValue = otherValue}
现在你对服务器端格式化做同样的事情但是你做了
...
var {0}_borderAnimation = new BorderAnimation('{1}', '{2}')
...
这就是ASP.NET将Backend与前端“连接”的方式。 还有其他一些方法(更优雅),但这不是问题:)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.