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

4

在aspx.cs文件中,是否可以通过jquery获取属性(get;set;),比如说Name?


1
如果您想从 JQuery 获取属性的值,可以将其传递给隐藏字段,然后从 JQuery 中获取它。 - Tony The Lion
5个回答

7

是的,这取决于您使用的框架:

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

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


6

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

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

如果您的脚本不是内联的,即它来自一个单独的JavaScript文件,您有几个选择。
  1. 您可以使用上面的技术将所需的变量添加到页面中,然后您的外部JavaScript可以引用它。
  2. 您可以通过在属性窗口中更改其内容类型为“嵌入式资源”,并使用以下内容,将外部JavaScript文件变成Web资源:
  3. [assembly: WebResource("myJS.js", "text/javascript", PerformSubstitution=true)]

WebResourceAttribute上使用“PerformSubstitution”标志将使文件在呈现之前通过asp解析器运行,并替换文件中找到的任何ASP标记。但是,Web资源也有一些缺点,因此在决定是否使用它们之前,您应该了解它们。

非常抱歉回复晚了,但我刚好在做同样的事情,通过谷歌我偶然发现了这里。所以,这可以用来获取属性,在这种情况下是 Name,那么设置属性呢?我如何从jquery/javascript设置这个 Name 属性? - Razort4x

1

您可以使用受保护的属性,如下所示:var name = '<%= Name %>';

或者从代码后台生成JavaScript代码,并通过使用ClientScript.RegisterClientScript*在客户端注册。


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

0
在代码后台添加以下内容:
Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "ClientVariable", "var clientVariable = '" + clientValue + "';", true);

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

不要忘记在结尾处加上'true'参数,因为默认情况下不会添加脚本标签,这会防止脚本正常工作。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接