从代码中获取属性到aspx页面

时间:2009-12-17 20:21:02

标签: c# asp.net jquery

是否有可能将属性(get; set;)从代码隐藏(aspx.cs)文件中的名称变成jquery?

5 个答案:

答案 0 :(得分:7)

是的,取决于你的框架:

<script type="text/javascript">
var someProp = "<% = this.PropertyName; %>";
</script>

您可能遇到编码问题,因此请确保转义javascript的值。

答案 1 :(得分:5)

是的。如果您的脚本在aspx页面中内联,只需使用ASP标记将其放入脚本中。

<html.....
<script type="text/javascript">
    public function myJSFunction()
    {
        var x = '<%= Name %>';
       ...
    }
</script>

如果您的脚本不是内联的,即它来自单独的javascript文件,那么您有几个选项。

  1. 您可以使用上述技术将所需的变量添加到页面中,然后外部javacript可以引用它。

  2. 您可以通过在属性窗口中将其内容类型更改为“Embedded Resource”,然后使用以下内容将外部javascript文件设置为Web资源:

    [assembly: WebResource("myJS.js", "text/javascript", PerformSubstitution=true)]

  3. WebResourceAttribute上使用“PerformSubstitution”标志会使文件在呈现之前通过asp解析器运行,并且它将替换它在文件中找到的任何ASP标记。 Web资源有一些缺点,所以你应该在决定使用它们之前阅读它们。

答案 2 :(得分:1)

您可以使用此类受保护的属性var name = '<%= Name %>';

或者从代码隐藏生成JavaScript代码并使用ClientScript.RegisterClientScript*

注册到客户端

答案 3 :(得分:0)

您可以使用隐藏的输入控件并在属性中设置它的值。然后你可以通过访问隐藏变量的值来访问属性的值。

aspx页面

<asp:HiddenField id="hiddenField1" runat="server">

背后的代码

Public Property MyProperty as String
Get
   Return hiddenField1.Value
End Get
Set(value as string)
  hiddenField1.Value = value
End Set

jquery的

var hValue = $('#<%= hiddenField1.ClientID %>').val();

答案 4 :(得分:0)

在代码隐藏中添加以下内容:

Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "ClientVariable", "var clientVariable = '" + clientValue + "';", true);

其中clientValue是您希望可访问的值,方法是在客户端代码中使用普通的javascript变量clientVariable。

不要在最后省略'true'参数,因为默认情况下不添加脚本标记,这会阻止脚本工作。