Asp.net在类库中编译js作为嵌入资源,其中包含c#代码
Asp.net compile js in class library as embedded resource with c# code inside
在我的类库中,我嵌入了一些js和css文件,以便在我的asp.net应用程序中使用,如这里所描述的方法。现在我要把一些c#代码在js文件中,并让它在生成的dll中编译。有可能吗?
例子:somefile.js
function foo()
{
var a = "<%= SOME_CONSTANT_DECLARED_OUTSIDE %>";
<% ... some conditional code %>
}
Javascript是客户端,c#是服务器端。
你不能在Javascript中运行c#
. NET不编译,也不查找*.js文件中的托管代码(编译的代码,如c#代码)。所以当你把一些c#代码在js文件中,代码将不工作作为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) {这一点。_color = color;这一点。_otherValue = otherValue}
对服务器端格式也做同样的处理但是你要做
...
var {0}_borderAnimation = new BorderAnimation('{1}', '{2}')
...
这是如何ASP。. NET将后端与前端"连接"起来。有一些其他的方法(更优雅)来做到这一点,但这不是问题的关键。
相关文章:
- 嵌入iframe URL以在wordpress中包含当前用户id
- 使用 javascript 压缩包含嵌入图像的 HTML 字符串
- 引用javascript嵌入资源,但intellisense没有'我什么也不展示
- 如何使用Angular 2服务提供包含指向另一个资源的链接/ids的资源集合
- SVG在嵌入时可访问,但在包含时不可访问
- C# 在 中嵌入资源.Js 文件而不是 .cshtml
- 错误 403(禁止),当 HTML 包含 CSS 和 JS 等资源时
- 使用 JSON 解析 XML,也包含嵌入在标记属性中的 XML
- 创建独立的离线 HTML5 应用以及嵌入其资源的最佳方法
- 如何检查 css/js 资源是否包含在 head 中
- 在Mustache模板中嵌入一个Twitter共享按钮(包含JS和所有内容)
- 在浏览器中使用javascript将HTML页面的所有外部资源嵌入到单个文件中
- 一个简单窗口的计算资源密集度.包含函数
- 嵌入包含评论的Facebook页面帖子
- 嵌入与包含用于DOM交互的Javascript
- 从3升级到PHP 5.5之后.x,它似乎试图解析我的JavaScript注释(嵌入在一个PHP包含文件的脚本标签)
- 当选择包含Youtube嵌入的HTML类时,JQuery选择器不工作
- 资源配置错误.预期响应包含一个对象,但得到一个数组
- 通过h:outputScript包含javascript和资源
- Asp.net在类库中编译js作为嵌入资源,其中包含c#代码