我不确定在您的情况下如何将数据从 c# 传递到 *.js 文件,我认为这是不可能的。但是您可以尝试在包含 *.js 的页面上进行破解,您可以尝试将 javascript 变量声明并设置为 c# 代码(因此在 ASPX 中,如果它是 ASP.NET),然后将 *.js 包含引用在那之后并在其中不重新声明变量而是使用它。您还可以使用 JSON 或 AJAX 调用服务器端代码并返回值和执行代码。
场景 1:(hack 方式,不干净且难以维护,但可以完成工作)
文件.aspx
<script language="javascript" type="text/javascript">
var MyVariable = "<%=C_Variable_On_Code_Behind%>";
</script>
<script type="text/javascript" src="/scripts/YourJsFile.js" >
</script>
YourJsFile.js
if(MyVariable != null && MyVariable.length > 0){
//Do some thing.
}
场景 2:(JSON、AJAX、JQUERY UI)
用于自动完成的 jquery ui 示例:try this link
另一个例子:Or this link
场景 3:(从服务器端 c# 写入客户端)
通过ClientScriptManager 对象使用RegisterStartupScript 或RegisterClientScriptBlock,这是我放在一起的一个虚拟代码,您可以查找它们并有一个想法,以便您了解更多信息,这并不意味着完整代码。
ClientScriptManager script = Page.ClientScript;
if (!script.IsClientScriptBlockRegistered(this.GetType(), "YourLabelForThis"))
{
script.RegisterClientScriptBlock(this.Page.GetType(), "YourLabelForThis",
"<script type=\"text/javascript\">var MyVariable = "Dummy text";</script>", false);
}
请注意,无论您想要在此代码之前还是之后,您都必须将 js 代码作为包含或进一步代码放置在页面中的正确位置,因此请通过 ClientScriptManager 查找 RegisterStartupScript 或 RegisterClientScriptBlock。查看您的代码将放置在哪里以及您应该如何处理它。也可以在浏览器中查看页面源代码。