【问题标题】:Jquery get property from C# has warning in visual studio 2012Jquery 从 C# 获取属性在 Visual Studio 2012 中有警告
【发布时间】:2015-12-04 18:18:53
【问题描述】:

我在 aspx.cs 页面中有一个属性:

public string UtilizatorLogat 
{ 
    get 
    { 
        return (!(Session["utilizator"] == null)).ToString().ToLower(); 
    } 
}

我在 $(document).ready 上的 aspx 页面中得到它:

utilizatorLogat = <%=UtilizatorLogat%>;

但视觉工作室说:语法错误

我不能将它包含在"" 中,因为它是一个布尔值,我不想让它成为一个字符串...

知道为什么会显示此警告吗?

【问题讨论】:

  • 你可以做utilizatorLogat = '&lt;%=UtilizatorLogat%&gt;' == 'True';

标签: c# jquery asp.net visual-studio-2012


【解决方案1】:

这是 JavaScript 解析器的语法错误,它认为 &lt;%=UtilizatorLogat%&gt; 无效。这是混合客户端/服务器代码时的常见问题。

解决此问题的一种方法是引用该值,然后将其解析或测试(在 JavaScript 中)为布尔值。

var utilizatorLogat = /true/i.test("<%=UtilizatorLogat%>");

当页面呈现时,它将是:

var utilizatorLogat = /true/i.test("false");

看起来很奇怪,但这样可以避免设计器中的语法错误,这也会导致自动格式化出现问题。

【讨论】:

  • 这就是我要找的。谢谢!
【解决方案2】:

如果你想在客户端使用它,你需要将它转换为字符串

var utilizatorLogat =<%=UtilizatorLogat.ToString().ToLower()%>;

你也可以使用这个技巧来避免警告:

原代码:

   <script type="Text/javascript">
    <%If Page.IsPostback Then%>
    alert("my javascript code");
    <%End If%>
    </script>

解决方案:

<script type="Text/javascript">
//<%If Page.IsPostback Then%>
alert("my javascript code");
//<%End If%>
</script>

参考:Visual Studio confused by server code inside javascript

【讨论】:

    【解决方案3】:

    我认为是 Adriano 和 Phx 的混合答案(Adriano 不要加引号) 我总是使用这种解决方案并且它有效

    var utilizatorLogat ='<%=UtilizatorLogat.ToString().ToLower()%>';
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-10-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-04-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多