繁体   English   中英

在外部Javascript文件中处理ASP.NET表达式

[英]Processing ASP.NET expressions inside an external Javascript file

在外部Javascript文件中使用ASP.NET表达式的最佳实践是什么?

我目前正在使用ASP.NET MVC框架,并且需要在外部JS参考中执行与以下操作类似的操作:

jQuery(document).ready (function () {
    jQuery ("#element<%= Model.IdFromAThing %>").click (... blah ...
});

可以将其移入View,这是理所当然的,但是我想将其分开。

聚苯乙烯

这样做的优点之一是,我可以在许多地方重复使用相同的JS文件,我真的不想在每个视图中重复初始化逻辑(考虑到它是相同的)。

我认为这是不可能的,除非您更改IIS以将.js文件处理为ASP.NET。

外部js文件不由ASP.NET处理,它们只是发送到Web客户端。 因此,除非您弄乱了IIS配置并将其更改为处理.js文件(就像处理ASP.NET文件一样),否则无法在.js文件中使用ASP.NET表达式。

另一方面,您可以将.js文件重命名为.aspx,然后将其用作js src值。 然后,在将它发送到客户端之前,将使用ASP.NET对其进行处理。 您只需要确保输出中没有自动生成的HTML代码(只是javascript)即可。

Jim是正确的,要让JS文件包含动态内容,您将需要ASP.NET引擎来解析/处理这些内容。

另一个想法是稍微重构您在做什么。 创建您的JS文件,以接受可插入的动态页面中的(动态)参数。 例如,您的示例可能被重写如下:

在您的静态JS文件中:

function setItUp(idFromAThing) {
    jQuery(document).ready (function () {
        jQuery ("#element" + idFromAThing).click (... blah ...
    });
}

在您的ASP.NET视图中:

<script type="text/javascript" src="whatever.js"> </script>
<script type="text/javascript">
setItUp(<%= Model.IdFromAThing %>);
</script>

祝好运!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM