【发布时间】:2016-03-31 22:49:33
【问题描述】:
我们有一个使用 C# 和 ASP.NET 构建的 Web 应用程序。我必须在我的 JavaScript 代码中引用一些 .NET 会话变量,所以我使用以下行来这样做:
var layoutID = '<%=Server.UrlEncode(string.Format("{0}", Session["layout_id"]))%>';
这很好用。 Web 应用程序已构建并发布到我们的 Web 服务器。如果我想进行更改,.NET 更改将需要我编译更改并将其再次发布到 Web 服务器。如果是 JavaScript 更改,我可以简单地编辑 .ASPX 页面中的 js,然后立即修复...无需编译。
我的问题 - 如果我对 JavaScript 中包含的这个内联 C# 代码进行更改会怎样?比如说,我的意思是访问没有下划线的 Session["layoutid"]。我可以只编辑 Web 服务器上的 .ASPX 页面,还是需要像在 .CS 文件中一样进行编译?我猜因为它是 C#,我仍然需要编译以获取更改。是的,我可以自己尝试一下,但我希望有人可以通过这个内联 c# 代码对幕后发生的事情有所了解。当我们讨论这个话题时,我用来在 JavaScript 中访问 .NET 会话变量的技术是最有效的方法吗? 额外的问题 - 这种技术叫什么?我尝试搜索答案,但除了“内联 c# 代码 JavaScript”之外,我不确定要搜索什么。
谢谢!
【问题讨论】:
-
首先,“eval 是邪恶的”你永远不应该将代码存储在字符串中。其次,如果您想在任何开发中进行细微的更改,无论使用哪种语言,您都不应该每次都重新编译,您可以将参数存储在数据库表、配置文件或类似的东西中。
-
我在过去的一年中对代码进行了类似的更改,如果有帮助就不需要编译......但我同意这不是一个好习惯。
-
试一试就不能更快地回答这个问题吗?
-
是的,可以,但正如我在问题中所说,我很好奇这种类型的代码在幕后发生了什么,以及它是否是最佳实践。
标签: javascript c# asp.net .net