【问题标题】:Does C# code contained in Javascript still need to be compiled?Javascript中包含的C#代码还需要编译吗?
【发布时间】: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


【解决方案1】:

不,对 ASPX/CSHTML 文件的更改不需要重新编译。

注意:跳转到生产服务器并绕过源代码控制/测试更改随机代码是否是个好主意是您的团队需要讨论和回答的问题。

【讨论】:

  • 谢谢阿列克谢。这是一个特殊的情况,但你是对的,通常我不会跳出生产并做出这样的改变。
猜你喜欢
  • 2022-06-20
  • 1970-01-01
  • 2012-08-04
  • 2017-02-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-12-12
  • 1970-01-01
相关资源
最近更新 更多