在javascript条件下使用asp.net内联标签

时间:2013-03-12 16:03:35

标签: javascript asp.net

我厌倦了在本地测试我的Asp.Net webforms页面时,我的所有jscript社交小部件/分析初始化混乱了我的调试输出。所以我在我的HTML标记中尝试了这个:

<script>
if (<%= !Request.IsLocal ? "true" : "false" %>) {

这实际上发出了正确的jscript代码(“if(true)”),没有运行时错误,但Visual Studio不喜欢它。我收到')'时出现语法错误。绝对不喜欢看到编译错误,即使它们是假的,我编译的每一个时间都是。

我将其更改为比较字符串,例如

if ("<%= Request.IsLocal %>" === "False") {

哪个有效并发出像'if(“True”===“False”)'这样的代码,但是......这只是让我神经紧张并且看起来很难看。这只是一个Visual Studio的怪异,还是有更好的方法在jscript条件中使用asp.net服务器布尔值?

2 个答案:

答案 0 :(得分:2)

你可以这样做:

<script>
  var isLocal = "<%= Request.IsLocal %>" == "True";
  ...

  if(isLocal) {
    // do local stuff
  }
</script>
VS不抱怨。

答案 1 :(得分:0)

javascript / html / css + server标签的组合将根据其位置等显示出明显的线条。

如果你真的想避免这种情况,你必须在后面的代码中创建你的javascript。

<asp:Literal id="script" runat="server">

在后面的代码中。

if (Request.IsLocal) {
    script.Text = "<script>function(){}</script>";
}