0

在本地测试我的 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 服务器布尔值?

4

2 回答 2

2

你能做类似的事情:

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

  if(isLocal) {
    // do local stuff
  }
</script>

VS 没有抱怨。

于 2013-03-12T16:46:35.777 回答
0

javascript/html/css + server 标签的组合将根据它们的位置等显示波浪线。

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

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

并在后面的代码中。

if (Request.IsLocal) {
    script.Text = "<script>function(){}</script>";
}
于 2013-03-12T16:08:27.437 回答