【问题标题】:<%# server tags in jquery<%# jQuery 中的服务器标签
【发布时间】:2009-06-23 18:25:41
【问题描述】:

我是 jQuery 的新手,有一个快速的问题。

我希望在我的 jQuery 代码中使用我的服务器端类,类似于:

$(document).ready(function() {
var temp = <%# myClass.Id %>;
})

这可能吗?如果有,怎么做?

非常感谢

这是我将前一个问题改进为的后一个问题:

对不起,我想我没有很好地解释自己......我有一个类名用户。这是我在业务逻辑中构建的一个类。

我有一个名为 UserProfile 的网页,在其中我有以下属性公开当前登录的用户:

    public BL.User CurrUser        {                get { return (BL.User)Session["currUser"]; }        }I want to be able to access this User class from my aspx page using Jquery. How do I do that?

【问题讨论】:

  • 你在说什么样的服务器端类?
  • (注意,他不是添加标签的人,所以我想确定一下)

标签: asp.net jquery server-tags


【解决方案1】:

数据绑定语法

<%# MyStaticClass.MyProperty %>

只有在容器(页面)上调用 DataBind 时才会起作用。您所追求的很可能是以下语法:

<%= MyStaticClass.MyProperty %>

这也将让您访问您的页面/控制成员

<%= this.MyPageProperty %>

正如已经提到的,您应该真正将这些值分配给 java 脚本变量并将这些变量传递给您的 JS 函数。

【讨论】:

    【解决方案2】:

    这仅在您的 javascript 嵌入源文件(例如 .aspx 文件)时才有效:

    <script type="text/javascript">
        var id = <%# myClass.Id %>; // store as raw value
        var id_string = '<%# myClass.Id %>'; // store in a string
    </script>
    

    【讨论】:

      【解决方案3】:

      正如其他人所说,如果 JavaScript 在您的 aspx 页面中,那么使用服务器标签就可以了。

      如果你的 jQuery 在外部脚本文件中,那么你可以把它放在你的 aspx 页面中

      <script type="text/javascript">
      var myClass = $('#<%= myClass.ClientID %>');
      </script>
      

      然后在你的外部脚本文件中使用变量

      $(function() {     
          myClass.click( function() { ... });
      });
      

      有关其他选项,请查看此问题和答案 - How to stop ASP.NET from changing ids in order to use jQuery

      【讨论】:

      • +1 是的,您必须使用服务器端对象的 ClientID 属性。否则渲染的 HTML 将毫无用处。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多