繁体   English   中英

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

[英]get property from code behind into aspx page

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

是的,取决于您的框架:

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

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

是的。 如果您的脚本在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)]

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

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

或者从代码隐藏生成JavaScript代码并使用ClientScript.RegisterClientScript*注册到客户端

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

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();

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM